У меня есть пейджинг UIScrollView
с contentSize достаточно большим, чтобы содержать несколько небольших UIScrollViews для масштабирования. viewForZoomingInScrollView
- это viewController, который содержит CALayer для рисования страницы PDF. Это позволяет мне перемещаться по PDF-файлу так же, как читатель PDF ibooks.CALayer и Off-Screen Rendering
Код, который рисует PDF (Плиточные Слои) расположен в:
- (void)drawLayer:(CALayer *)layer inContext:(CGContextRef)ctx;
И просто добавить «страницу» в видимом экране автоматически вызывает этот метод. Когда я меняю страницу, есть некоторая задержка, прежде чем все фрагменты будут нарисованы, даже если объект (страница) уже создан.
Что я хочу сделать, это отобразить следующую страницу до того, как пользователь прокрутится к ней, тем самым предотвращая видимый эффект черепицы. Тем не менее, я обнаружил, что если слой находится вне экрана, добавив его в scrollview, он не вызывает drawLayer
.
Любые идеи/общие проблемы здесь?
Я пробовал:
[viewController.view.layer setNeedsLayout];
[viewController.view.layer setNeedsDisplay];
NB: Дело в том, что это тиражирование функционально интерактивные книги не имеет никакого значения в контексте полного приложения.
Перед возвратом необходимо вызвать 'UIGraphicsEndImageContext'. – Jason
спасибо за уловку Джейсона –