我有一个带有多个页面的UIPageViewController,当浏览它们时,一切都运行良好。 PageViewController自动预加载当前页面的相邻页面以确保平滑滚动(我有UIPageViewControllerTransitionStyle.Scroll
)
此外,我还可以通过输入数字跳转到特定页面。问题是,当我以编程方式跳转到某个页面时,PageViewController似乎也没有预先加载相邻的页面,所以当我开始从我跳到的页面开始滑动时,有一个半秒的延迟, PageViewController加载下一个ViewController,以便显示它。
我用这个答案跳转到页面:https://stackoverflow.com/a/18602186/5461994
并将其转移到Swift:
weak var pvcw = pvc
pvc.setViewControllers([page], direction: UIPageViewControllerNavigationDirection.Forward, animated: true) { finished in
if let pvcs = pvcw {
dispatch_async(dispatch_get_main_queue(), {
pvcs.setViewControllers([page], direction: UIPageViewControllerNavigationDirection.Forward, animated: false, completion: nil)
})
}
}
我的问题是:如何让UIPageViewController预先加载我刚刚跳转到的页面的相邻页面,就像在刷卡过程中自动执行一样?
P.S。:我在推出应用时遇到了同样的问题。当我初始化我的PageViewController并设置第一个可见页面时:
pvc.setViewControllers([firstPage], direction: UIPageViewControllerNavigationDirection.Forward, animated: false, completion: nil)
第一次滑到第二页时,我也有这种延迟。 任何帮助表示赞赏!