我有一個應用程序,我正在做一些自定義繪圖,漸變背景上的一束線,就像這樣(忽略文本,它們只是UILabels) :在iPhone上繪製自定義圖形:CALayer與CGContext
http://prehensile.co.uk/outgoing/Screenshot2010-06-09at12.22.32.png
此刻,這一切都通過啓動一個新的CGContext上,畫的東西把它與CGContextDrawLinearGradient和CGContextStrokePath,最後保存與UIGraphicsGetImageFromCurrentImageContext產生的圖像進行。定位信息是在我繪製這些標籤時計算出來的,因此當包含UIView用drawRect繪製時,它將成爲PITA(並重復工作)來重新計算它,所以我在繪製它之前時間轉換成UIImage。所有的工作都很好,迄今爲止非常好。
但是,我有一個偷偷摸摸的疑問,使用CALayers來做這個繪圖可能更有效率。我對這兩種方法之間差異的理解是CALayer更像是一堆指令來繪製東西,所以在實際繪製在屏幕上之前佔用的內存更少,而提前將所有東西繪製成UIImage意味着無論是否繪製,你都會記得一直在記憶中s s不安的偉大位圖。
這是一個正確的理解?通常認爲什麼是在iPhone上繪製自定義圖像的最佳方式?