TGViewer
iOS Dev iOS Dev @iosdev · 7.92K subscribers
Post #1989 3.87K
Что скрывает UIPageViewController

Seb Vidal и ertem выяснили несколько неочевидных фактов о UIPageViewController.

Вообще он устроен чертовски интересно: внутри крутится кастомный UIScrollView (класс _UIQueuingScrollView), который создает лишь иллюзию бесконечной ленты.

И скорее всего вы знали, что на самом деле в иерархии всегда находятся всего три вьюхи (текущая, предыдущая и следующая), а вот магия непрерывного скролла достигается за счет постоянного и бесшовного сброса contentOffset и фреймов подструктур.

Так вот, оказывается, что через приватный метод _visibleView реально вытащить активный экран. И если объединить этот трюк с KVO-трекингом (о чём и написал ertembiyik) и учесть размеры фрейма и interpageSpacing, можно получить буквально «виртуальный contentOffset».

После этого мы можем вертеть анимациями как угодно, как пишет Себ, можно например, воссоздать легендарный интерактивный скраббер из Apple Photos прямо у себя в приложении!

😃 iOS Dev
  • 🔥 31
  • 👏 3
  • 🤓 2
  • ✍ 1
  • 👍 1
  • 🤝 1
More from @iosdev
  1. Oct 1, 2026SwiftUI Charts и динамическое маскирование Одним из применений для диаграмм является разны…
  2. Sep 29, 2026⚡️Сегодня ночью десятки тысяч приложений массово начали крашиться из-за либы для аналитики…
  3. Sep 28, 2026От pbxproj к xcproj: разбор конфигураций проекта 📖 В этой статье можно посмотреть на новы…
  4. Sep 25, 2026Симулятор iPhone Duo: тестирование и оптимизация приложения Как только был анонсирован iPh…
  5. Sep 24, 2026Настоящая причина, почему на презентации не показали, как выглядит звонок с iPhone Duo. 😃…
  6. Sep 23, 2026Работа с тулбарами на iPhone Duo На iPhone Duo элементы управления навигацией, тулбар-экшн…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →