我有一个UIPageViewController与几个页面。每个页面都是相同的视图控制器,但页码会跟踪并显示PDF的正确页面。问题是每个PDF页面都需要在卷曲效果工作之前加载并绘制(您在屏幕上滑动手指,直到加载完成才会发生任何事情)。关于如何加速或预载下一页的任何想法?谢谢你的帮助。加快UIPageViewController
3
A
回答
6
我在我现在使用的应用程序中有类似的问题。我的解决方案是将加载的前一个和下一个控制器的引用保留为我的根视图控制器的属性,然后从那里加载视图。我不使用PageViewController,因为客户端坚持认为它有看起来像FlipBoard ...所以我也缓存了最终的GLTexture。它应该同样工作,只需在当前页面加载时存储下一页和上一页,并在“loadNextPage”或任何方法中传递该控制器。
编辑:下面是一个示例(我已经简化)从我的项目
第一个载荷(NH是我的程序前缀,所以你需要替换自己的类):
NHViewController *child = [NHViewController loadPageNum:actualNum];
[self.view addSubview:child.view];
self.curController = child;
child.delegate = self;
[self initializePages:NHPageLoadBoth];
后续加载(翻页):
NHPageLoadSettings pageToLoad = NHPageLoadNext;
if(direction == NHPageDirectionNextPage)
{
self.prevController = self.curController;
self.curController = self.nextController;
self.nextController = nil;
}
else
{
self.nextController = self.curController;
self.curController = self.prevController;
self.prevController = nil;
pageToLoad = NHPageLoadPrev;
}
UIView *nextView = self.curController.view;
[self.view addSubview:nextView];
[mCurView removeFromSuperview];
mCurView = nextView;
[self initializePages:pageToLoad];
初始化页面:
- (void)initializePages:(NHPageLoadSettings)pagesToLoad
{
if(pagesToLoad & NHPageLoadNext)
{
NSUInteger nextPageNum = [self.curController.pageNum unsignedIntegerValue]+1;
self.nextController = [NHViewController loadPageNum:nextPageNum];
}
if(pagesToLoad & NHPageLoadPrev)
{
NSUInteger prevPageNum = [self.curController.pageNum unsignedIntegerValue]-1;
self.prevController = [NHViewController loadPageNum:prevPageNum];
}
}
这样,您将始终准备好相邻页面。然后,不要在UIPageViewController中检索下一页或上一页的方法中实例化它们,只需传递self.nextController或self.prevController。
相关问题
- 1. 在UIPageViewController中预加载UICollectionView
- 2. 将分页添加到uipageviewcontroller
- 3. UIPageViewController - 视图不加载
- 4. UIPageviewController PDF
- 5. 预加载UIPageViewController中的下一页
- 6. uipageViewController没有加载视图与y = 0
- 7. 以编程方式添加UIPageViewController
- 8. 添加垂直滑动到UIPageViewController
- 9. 如何添加第二个UIPageViewController
- 10. xcode 6使用UIPageViewController并快速更改视图大小
- 11. 在uipageviewcontroller上快速滚动时的黑色视图控制器
- 12. UIScrollView或UIPageViewController
- 13. UIPageViewController和景观
- 14. UITapGestureRecognizer在uipageviewcontroller
- 15. UIPageViewController与PageControl
- 16. UIPanGestureRecognizer与UIPageViewController
- 17. UIPageViewController和UIScrollView
- 18. ViewControllers在UIPageViewController
- 19. UIPageViewController后视图
- 20. BAD_ACCESS上UIPageViewController
- 21. 如何UIPageViewController
- 22. 的TableView在UIPageViewController
- 23. 多个UIPageViewController的
- 24. 如何改变UIPageViewController
- 25. UIPageViewController自动滚动
- 26. 如何使用UIPageViewController
- 27. viewControllerBeforeViewController不叫在UIPageViewController
- 28. UIPageViewController冲突问题
- 29. UIPageViewController上的圆角
- 30. 禁用UIPageViewController Swipe - Swift
是的,这就是我的想法。我将如何加载下一页?你能给我一个快速的代码示例吗?谢谢你的帮助! – 2012-03-21 04:48:15
我用样本编辑了上面的答案......希望你可以将它应用到你的项目 – borrrden 2012-03-21 05:50:04
非常感谢你! – 2012-03-21 19:19:58