CALayer and Off-Screen Rendering

У меня есть Paging UIScrollView с достаточно большим contentSize, чтобы вместить несколько небольших UIScrollView для масштабирования, viewForZoomingInScrollView является viewController, который содержит CALayer для рисования страницы PDF. Это позволяет мне перемещаться по PDF так же, как в программе для чтения PDF-файлов ibooks.

Код, который рисует PDF (мозаичные слои), находится в:

- (void)drawLayer:(CALayer *)layer inContext:(CGContextRef)ctx;

И простое добавление «страницы» на видимый экран вызывает этот метод автоматически. Когда я меняю страницу, происходит некоторая задержка перед отрисовкой всех плиток, даже если объект (страница) уже был создан.

Я хочу иметь возможность визуализировать следующую страницу до того, как пользователь перейдет к ней, таким образом предотвращается видимый эффект мозаики. Однако я обнаружил, что если слой находится за пределами экрана, добавление его к просмотру прокрутки не вызывает drawLayer .

Есть какие-нибудь идеи / общие ошибки?

Я пробовал:

[viewController.view.layer setNeedsLayout]; 
[viewController.view.layer setNeedsDisplay];

NB: Тот факт, что это функционально воспроизводит ibooks, не имеет значения в контексте всего приложения.

8
задан Luke Mcneice 30 September 2010 в 14:29
поделиться