2011-09-23 138 views
0

我有16個本地存儲的預渲染的40x40像素圖像,我想用作我的UITableViewCell圖像。我可以使用[UIImage imageNamed:]來顯示它們。但我注意到這會降低桌面視圖的滾動速度。UITableViewCell加載圖像

我已經查看了蘋果示例中的延遲加載等,並理解我需要在後臺線程或異步執行它,但還沒有找到本地圖像的示例。

任何人都可以幫忙嗎?

回答

1

子類的UITableView細胞,開創細胞的新方法是這樣的:

- (void)setImage:(NSString *)imageName; 

然後從那裏您用來設置圖像,改變它,而不是像做:

[cell setImage:nil]; 
[cell performSelector:@selector(setImage:) withObject:@"imageName" afterDelay:0]; 

將其更改爲performSelector:withObject:afterDelay:表示在tableView滾動時,不會執行設置圖像的代碼。這應該會導致滾動性能的顯着提高,因爲在滾動停止之前它不會將圖像設置到單元格中。

但是,您會發現滾動時缺少圖像,因此您可能需要考慮圖像位置中的一個小佔位符圖像,以便在滾動時顯示。

我個人使用這種方法有條件地在我的代碼。我檢測UIDevice的年齡,如果它的老一代設備我會像這樣延遲加載,以提高滾動性能。

+0

謝謝安德魯..這對我來說工作得很好......乾杯! –

相關問題