2016-09-25 143 views
0

長時間困擾我的東西。有沒有辦法-preload- UICollectionViewCell?

有沒有辦法預載UICollectionViewCell?加載數據之前需要準備的東西,因此用戶滾動時不會創建單元格。

有什麼方法可以完全控制WHEN創建UICollectionViewCell和WHEN來銷燬UICollectionViewCell。

+0

查看WWDC視頻......我記得蘋果公司對收集視圖進行了一些API修改和性能改進...... –

回答

0

Apple documentation

通常不用創建該類自己的實例。而是使用集合視圖對象註冊特定的單元格子類(或包含配置的類的實例的nib文件)。當你想要一個你的單元類的新實例時,調用集合視圖對象的dequeueReusableCell(withReuseIdentifier:for :)方法來檢索一個。

細胞本身並不是一個沉重的資源,所以定製它的壽命有點意義。 我認爲,你應該問自己,而不是尋找一種方法來控制細胞的創造,你爲什麼要預先加載細胞?你想預先加載什麼樣的沉重資源? 根據不同的答案,你可以嘗試以下優化:

  • 如果你有你的複雜視圖層次,考慮從自動佈局重構,以手動設置幀
  • 如果你的電池應該顯示一些複雜的計算或遠程的結果圖像,你想有一個單獨的體系結構層來加載這些資源,不應該在單元類中進行。必要時使用緩存。
0

當您進入場景並導航(滾動)到每種單元格類型時,可以遮擋屏幕。當您確實滾動每個單元格時,應該隱藏遮光視圖並在第一個單元格上顯示集合視圖(頂部)。

這是一種解決方法。我的單元格有很多像圖片一樣的資源,這些資源在滾動收藏視圖時滯後。