我遇到了一個優化問題。我有一個在屏幕上同時顯示大量圖像(高達150)。這些圖像顯示爲如果它是一個可以滾動的球體。 優化大量的UIImageView
到目前爲止,它在一個新設備上運行60 fps,但有一些微小滯後,我不知道是什麼原因。探查器告訴我59-60 fps,但問題是,丟失的fps是可見的,並像微型摔倒一樣下跌。 如果我大幅減少了imageViews的數量,這個問題就消失了。 它似乎不受gpu限制,因爲我在gpu的大部分地方使用了30%的東西,但cpu從未超過50%。
什麼可能導致/如何檢測到這種微滯後的原因? (該圖像使用contentOfFile編輯) 知道至少有一半圖像不在屏幕上(球體的另一側),提高性能的最佳解決方案是什麼?
-Recycle UIImageViews的
- 設置不顯示的ImageView隱藏(這是我在做什麼現在)
- 使用光柵化層(但由於尺寸每次變化,它會重新渲染,對不對?)
- 另一個我不知道的魔法解決方案。
如果你想嘗試的應用程序: https://itunes.apple.com/us/app/oolala-instant-hangout-app/id972713282?mt=8
正如你所說,它已經被預渲染,比添加一個蒙版更好。我會嘗試。你的方法比UIImageView有更好的性能嗎?如果是這樣,我不知道爲什麼。 – Naluh
>您的方法比UIImageView的性能更好嗎? – kean
我已更新我的問題。 CALayer被用來提高NIAttributedLabel的性能。它比CGContextDrawImage提供了巨大的性能提升。現在我開始懷疑它是否比UIImageView更快,但我相信我們也測試了UIImageView。 – kean