Seb Vidal и ertem выяснили несколько неочевидных фактов о UIPageViewController.
Вообще он устроен чертовски интересно: внутри крутится кастомный UIScrollView (класс
_UIQueuingScrollView), который создает лишь иллюзию бесконечной ленты.И скорее всего вы знали, что на самом деле в иерархии всегда находятся всего три вьюхи (текущая, предыдущая и следующая), а вот магия непрерывного скролла достигается за счет постоянного и бесшовного сброса contentOffset и фреймов подструктур.
Так вот, оказывается, что через приватный метод
_visibleView реально вытащить активный экран. И если объединить этот трюк с KVO-трекингом (о чём и написал ertembiyik) и учесть размеры фрейма и interpageSpacing, можно получить буквально «виртуальный contentOffset».После этого мы можем вертеть анимациями как угодно, как пишет Себ, можно например, воссоздать легендарный интерактивный скраббер из Apple Photos прямо у себя в приложении!
😃 iOS Dev