我添加了幾個CALayers作爲UIView圖層的子圖層。每層的內容是從服務器下載的不同圖像。每個圖層都從屏幕外移動到隨機生成的位置。圖像數據是異步下載的。每張圖像大約爲300x300或更小。CALayer優化?
隨機放置的結果是,這些層重疊,有些被上面的層遮擋。這很好。
我除去層,因爲它們使用建議在the answer to this question的計算以確定覆蓋變得完全遮蔽從視野發生在一個單獨的線程。
我有一個UIPanGestureRecognizer,允許用戶在屏幕上拖動圖層。
當添加的圖層數量接近25-30並逐漸變差時,我遇到了性能問題。動畫變得不穩定並且通常完全不存在(新添加的層僅出現在其最終位置)。而平移手勢要麼被忽略,要麼導致選定圖層重新定位不連續。
我想我正在殺死所有圖層重疊並且上面有另一個圖層動畫的GPU?
有關如何提高性能的任何建議?
處理大量圖層的最佳做法?
讓圖層在單獨的view.layer中開始動畫比先前添加的圖層更好嗎?
謝謝!
謝謝比爾。我會給它一個鏡頭。當我提供layer.contents(僅在繪製圖層時才使用)時,我的印象是不透明的被忽略了?阿爾法位將更加棘手 - 我在圖像邊緣周圍使用2px寬的透明邊框來平滑旋轉邊緣。關閉儀器! – TomH 2011-02-01 14:16:26