我有UIScrollView和UIImageViews裏面的對象數量(UIView組合)。一些UIImageViews有圓形邊框(我使用myImageView.layer.masksToBounds = YES;
)。其他有矩形邊框和部分圖像(我使用Interface Builder中的Clip subviews
屬性)。clipToBounds和masksToBounds性能問題
的問題是,我發現,剪輯屬性強烈地影響性能的同時,滾動:
對於iPod touch(第4代)分析的結果:
- 啓用剪輯屬性(兩個或一個他們)我有大約30 fps的同時滾動
- 殘疾剪輯屬性我都60幀,同時滾動
我真的需要剪切一些圖像以將邊界和其他邊界限制到矩形邊界(以顯示圖像的一部分)。所以,這是我的問題:有什麼方法可以提高性能?可能是有低級別的方法來做到這一點(drawRect:
或其他),或者可能會發揮阿爾法遮罩或我只是做錯了什麼?
不錯的建議!但是現在當我將這個屬性應用於整個視圖時(這裏有圓形的圖像視圖和文本標籤),它確實有幫助。在這種情況下,文字變得非常醜陋。如果我僅將它應用於圓形圖像視圖上,它幾乎沒有效果。 – Lloyd18
啊,對不起。對於視網膜支持,設置'view.layer.rasterizationScale = [[UIScreen mainScreen] scale]'。這應該使一切都變得清晰。我已經更新了我的答案。 –
並記住檢查你的內存使用情況。使用「活動監視器」工具查看使用光柵化時的內存使用差異。額外的視頻內存可能不會顯示在分配中。如果增加太多,你應該像我說的那樣嘗試和回收視圖,這樣在任何時候都不會有太多的實例。 –