Thursday, May 19, 2011

iOS programming journal: Holy grail of tableview image handling

花了好幾天時間,嘗試各種方式企圖提昇帶有 imageView 的 tableview scrolling performance

Google 搜尋後看到幾個 tip
- prepare image in background。這我本來就這樣做了,但是仍然會頓
- 自己畫 tableviewcell。我也試了,沒用~
- 自己寫 tableviewcell 的 drawRect,不要讓 Cocoa 做一堆 subview render/layout。這我不想試,不信一定要這麼麻煩...

終於在昨天讓我看見了這篇的 Apple sample
http://developer.apple.com/library/ios/#samplecode/LazyTableImages/Introduction/Intro.html

原來真正的重點在

- 當 tableview 在 dragging、decelerating 時,不要去做花時間的動作,譬如 resize image,或是設定很長的 UILabel
- 等 tableview scrolling 停止後,再把畫面上少的東西用準備好,必要時用 background thread(要實作 UIScrollViewDelegate)

總算搞定,現在滑得可順了~~

No comments: