(1) Если вам не требуется, чтобы уровень детализации изменялся для разных уровней масштабирования, или если PDF-файл загружается достаточно быстро, чтобы не допустить рисования нескольких плиток за раз, обычный UIView с обычным CALayer будет отлично работает Например, если вы отображаете изображение вместо PDF, и изображение загружается достаточно быстро, чтобы не вызывать снижения производительности, вам не понадобится асинхронная загрузка, которую обеспечивает CATiledLayer. Образец PhotoScroller использует как плиточный, так и не мозаичный подходы, если вы хотите сравнить их.
(2) Атрибут tileSize изменяет размер блоков, на которые должен быть разбит слой. Вы можете установить это на то, что вы хотите. 512x512 на самом деле не такой уж большой, особенно если у вас большие размеры PDF. По умолчанию 256x256.
(3) Каждый раз, когда вы начинаете масштабирование, oldPDFView удаляется и отпускается. Затем pdfView назначается oldPDFView. Когда масштабирование заканчивается, создается новый pdfView с изменением масштаба и добавляется поверх старого. Если новый масштаб увеличивается, новый pdfView будет отображен с более высоким уровнем детализации. Это позволяет вам увеличивать глубину и глубину PDF. MaximumZoomScale и минимальный ZoomScale ограничивают только то, насколько вы можете увеличить с отдельным жестом.