Tôi có một ứng dụng mà tôi đang làm một số bản vẽ tùy chỉnh, một loạt các dòng trên nền gradient, như vậy (bỏ qua văn bản, chúng chỉ là UILabels) :Vẽ đồ họa tùy chỉnh trên iPhone: CALayer vs. CGContext
http://prehensile.co.uk/outgoing/Screenshot2010-06-09at12.22.32.png
Tại thời điểm này, đó là tất cả được thực hiện bằng cách bắt đầu một CGContext mới, vẽ thứ vào nó với CGContextDrawLinearGradient và CGContextStrokePath, sau đó cuối cùng đã tiết kiệm hình ảnh kết quả với UIGraphicsGetImageFromCurrentImageContext. Thông tin định vị được tính toán trong khi tôi đang đặt ra các nhãn đó, vì vậy nó sẽ là một PITA (và nhân bản của nỗ lực) để tính toán nó trên một lần nữa khi UIView chứa được vẽ với drawRect, vì vậy tôi vẽ nó trước thời gian vào một UIImage. Tất cả các công trình tốt, cho đến nay rất tốt.
Tuy nhiên, tôi có một nghi ngờ lén lút rằng có thể hiệu quả hơn khi sử dụng CALayers để vẽ bản vẽ này. Sự hiểu biết của tôi về sự khác biệt giữa hai cách tiếp cận là một CALayer giống như một loạt các hướng dẫn để vẽ, và chiếm ít bộ nhớ hơn cho đến khi nó thực sự được vẽ trên màn hình, trong khi vẽ mọi thứ vào UIImage trước bạn đã có một bitmap lớn sodding đá xung quanh trong bộ nhớ tất cả các thời gian, cho dù nó được rút ra hay không.
Đó có phải là sự hiểu biết chính xác không? Điều gì thường được coi là cách tốt nhất để vẽ hình ảnh tùy chỉnh trên iPhone?