2014-02-13 15 views
0

在我的UITableViewCells中,我想根據是否發生事件顯示UIImageView。在我的自定義單元格中,我有一個圖像分配給UIImageView(這是一個單一的靜態本地圖像)。然後我設置imageview隱藏,直到我想顯示它,然後我imageview.hidden = NO;隱藏圖像與繪製它以後的目標c

我的問題是這是否會影響UITableView的性能?我是否應該只在需要時將UIImageView繪製爲子視圖?謝謝!

+1

.hidden = YES/NO應該很好,所以應該.image = theImage/nil。 – danh

回答

1

imageview.hidden = NO;」不僅更健康,而且性能更好。

想一想:如果您向該單元格添加子視圖,則必須在單元格被回收以在顯示不同行時顯示之前將其刪除。在每次調用「cellForRowAtIndex:」方法開始時,簡單地執行「imageview.hidden = YES」要比刪除任何不需要的以前添加的子視圖要容易得多。

0

由於您將循環使用您的單元格,因此請使用UIImage imageNamed來緩存本地圖像,然後將其隱藏起來。您將獲得一次圖像加載的成本,然後平滑滾動。最大的性能影響將是從磁盤初始獲取,因此最好在用戶需要看到它之前將其取消。

0

我同意邁克爾的大部分內容,但確實有一個警告。 我會用imageview.hidden = NO;這就是說,它可能不是最好的在所有情況下。

實際性能實際上取決於您實際顯示的圖像數量有多少,從視覺上來看,它在風格上更直接。但是,如果使圖像可見是一個相對罕見的事件,那麼您可以考慮延遲加載圖像,直到您需要添加它爲止。

例如,如果每50個單元格中只有2個實際獲得可見圖像,則最好延遲加載它。