2013-12-10 48 views
1

我已經在單元格中設置了10個子視圖的集合視圖。UICollectionView滾動滯後

的子視圖是 -imageview上面有標籤 -text視圖 -imageview -uilabel -imageview -uilabel

最初集合視圖具有在iPad的時間顯示的15個細胞。當我滾動時,滾動停止時,是時候更換底部或頂部的單元格(重用單元格)。我刪除了陰影,但仍然是同樣的問題。

因此,當舊的單元重新使用導致滯後時會發生問題。

順便說一句,沒有圖像通過網絡加載。

回答

2

我很久以前就已經有了答案,但是爲了別人的利益以及可能會遇到同樣的問題。

除了去除陰影,您還需要刪除「清除顏色」的背景。任何需要額外處理的附加圖紙都應該刪除或替換爲替代。任何繁重的工作,文本格式,日期格式都應在甚至顯示集合或表格視圖之前完成。確保你的細胞只做提交和不處理。如果你不能避免它在另一個線程上進行處理。

要測量滾動率,您需要使用instruments> graphics>核心動畫工具來測量幀速率。

試試吧,你會發現一個區別。

3

編輯:沒有必要進行實驗自動尺寸口罩,剛剛看了一下UICollectionView性能提升http://noxytrux.github.io/blog/2014/09/25/ios8-weirdness-part3-laggy-uicollectionview/

這可能是一個自動版式開銷這短短的文章。考慮嘗試自動調整掩碼。

您只需提交一切,使一個實驗:

  1. 關閉自動佈局上你的XIB文件
  2. 運行一個應用程序來測試性能(不擔心搞砸了佈局)
  3. 如果效果顯而易見,請設置自動調整掩碼(並根據需要在代碼中進行佈局)而不是自動佈局

我通過這種方式解決了我的UICollectionView性能問題。當你一次有很多可見的單元格時,它最有幫助。

另外,如果您有圖像視圖,請參閱此答案Setting image property of UIImageView causes major lag

不要忘記儀器:運行時間探查,看看有什麼最吃你的主線程的時間。

+0

爲我修好了。拯救生命! – pixelfreak