Tôi có chế độ xem bản đồ tùy chỉnh được tạo thành từ UIScrollView
. Chế độ xem phụ của chế độ xem cuộn được hỗ trợ bởi CATiledLayer
. Mọi thứ đều hoạt động tốt ở đây. Panning & phóng to tải lên các ô bản đồ mới và mọi thứ hoạt động tốt.chụp ảnh chụp nhanh chế độ xem được hỗ trợ bởi CATiledLayer trong UIScrollView
Điều tôi muốn làm là chụp các khung hình video hoạt ảnh về chế độ xem cuộn này. Về cơ bản, tôi muốn tạo một video các thay đổi hoạt hình cho chế độ xem cuộn của contentOffset
và zoomScale
.
Tôi biết rằng khái niệm là âm thanh khi tôi có thể nhận hàm API riêng UIGetScreenImage()
để chụp màn hình của ứng dụng ở mức 10fps, kết hợp những hình ảnh này và tôi nhận được các hoạt ảnh phát lại mượt mà và có các đường cong thời gian được sử dụng các hoạt ảnh xem cuộn.
Vấn đề của tôi, tất nhiên, là tôi không thể sử dụng API riêng tư. Đi qua các lựa chọn thay thế được đưa ra bởi Apple here để lại cho tôi một lựa chọn đáng được cho là hợp lệ: yêu cầu một số CALayer
đến renderInContext
và lấy số UIGraphicsGetImageFromCurrentImageContext()
từ đó.
Điều này dường như không hoạt động với chế độ xem mặc định là CATiledLayer
. Hình ảnh bị thu nhỏ, không được thu phóng là hình ảnh được chụp, như thể các ô có độ phân giải cao hơn không bao giờ tải. Điều này phần nào có ý nghĩa cho rằng CATiledLayer
rút ra trong chủ đề nền cho hiệu suất và gọi renderInContext
từ chủ đề chính có thể không nắm bắt những cập nhật này. Kết quả là tương tự ngay cả khi tôi cũng hiển thị lớp của lớp lát gạch presentationLayer
.
Có cách nào được Apple xử phạt để chụp ảnh của chế độ xem CATiledLayer
được bảo vệ trong suốt quá trình xem hoạt ảnh của chế độ xem có cuộn không? Hoặc tại bất kỳ điểm nào, cho rằng vấn đề?
người gửi câu trả lời ở đây: http://stackoverflow.com/questions/5526545/render-large-catiledlayer-into-smaller- diện tích –