Tôi có một Paging UIScrollView
với contentSize đủ lớn để giữ một số nhỏ UIScrollViews để thu phóng, viewForZoomingInScrollView
là một viewController chứa một CALayer để vẽ một trang PDF lên. Điều này cho phép tôi điều hướng qua PDF giống như trình đọc PDF ibooks.Hiển thị CALayer và Off-Screen
Mã thu hút PDF (Layers lát gạch) tọa lạc tại:
- (void)drawLayer:(CALayer *)layer inContext:(CGContextRef)ctx;
Và chỉ đơn giản là thêm một 'trang' cho màn hình hiển thị gọi phương pháp này tự động. Khi tôi thay đổi trang có một số chậm trễ trước khi tất cả các gạch được rút ra, mặc dù đối tượng (trang) đã được tạo ra.
Những gì tôi muốn có thể làm là hiển thị trang tiếp theo trước khi người dùng cuộn đến trang đó, do đó ngăn tác dụng ốp lát hiển thị. Tuy nhiên, tôi đã thấy rằng nếu lớp nằm ngoài màn hình, thêm nó vào scrollview không gọi là drawLayer
.
Bất kỳ ý tưởng/gotchas phổ biến ở đây?
Tôi đã thử:
[viewController.view.layer setNeedsLayout];
[viewController.view.layer setNeedsDisplay];
NB: Thực tế là điều này được sao chép các iBooks chức năng là không thích hợp trong bối cảnh của các ứng dụng đầy đủ.
Bạn cần gọi 'UIGraphicsEndImageContext' trước khi trở về. – Jason
cảm ơn vì đã bắt Jason –