У меня есть пейджинг UIScrollView
с размером контента достаточно большим, чтобы вместить несколько маленьких UIScrollView для масштабирования. viewForZoomingInScrollView
- это viewController, который содержит CALayer для рисования страницы PDF. Это позволяет мне перемещаться по PDF так же, как и в ibooks PDF Reader.
Код, который рисует PDF (Tiled Layers), находится в:
- (void)drawLayer:(CALayer *)layer inContext:(CGContextRef)ctx;
И простое добавление «страницы» на видимом экране вызывает этот метод автоматически. Когда я меняю страницу, происходит некоторая задержка перед отрисовкой всех плиток, даже если объект (страница) уже создан.
То, что я хочу иметь, это сделать следующую страницу, прежде чем пользователь перейдет к ней, тем самым предотвратив видимый эффект листов. Тем не менее, я обнаружил, что если слой находится за пределами экрана, добавление его в представление прокрутки не вызывает drawLayer
.
Есть здесь какие-нибудь идеи / общие вопросы?
Я пытался:
[viewController.view.layer setNeedsLayout];
[viewController.view.layer setNeedsDisplay];
NB. Тот факт, что это функционально дублирует ibook, не имеет значения в контексте полного приложения.