Tôi có chế độ xem với một số logic vẽ rất phức tạp (đó là chế độ xem bản đồ thu thập từ dữ liệu GIS). Làm bản vẽ này trên sợi chính sẽ khóa giao diện người dùng và làm cho ứng dụng không phản hồi. Tôi muốn di chuyển các bản vẽ đến một chủ đề nền với ví dụ một NSOperation.Vẽ trong chuỗi nền trên iOS
Cách tốt nhất để cấu trúc này là gì?
Tôi hiện đang vẽ ra một bộ nhớ tắt CGContext và sau đó chuyển đổi đó thành một CGImageRef mà tôi gửi đến xem để blit trên chủ đề chính. Thật không may, điều này sử dụng rất nhiều bộ nhớ và có vẻ như tăng tốc GPU không còn được sử dụng vì nó hơi chậm hơn một chút. Có cách nào để vẽ trực tiếp vào chế độ xem từ chuỗi nền không? Tôi biết rằng UIKit không phải là đa luồng an toàn nhưng có thể có một số cách để khóa chế độ xem trong khi tôi đang vẽ bản vẽ?
Bạn có nghĩa là CALayer? –
No. CGLayer. http://developer.apple.com/library/mac/#documentation/GraphicsImaging/Reference/CGLayer/Reference/reference.html – MacGeek
Vì vậy, tôi đang thử phương pháp này ngay bây giờ nhưng ngay cả khi tôi chạy với NSTimer và chỉ chạy 50% của thời gian (chạy trên khoảng 0,2 giây cho tối đa 0,1 cho mỗi chu kỳ vẽ) có vẻ như nó vẫn bỏ qua tất cả các sự kiện giao diện người dùng. Có lừa đảo gì ở đây không? –