UIPageViewController 浅谈

UIPageViewController : 书本翻页控制,可以实现书本翻页动画,包含了很多手势,酷炫的动画降低了开发者的开发难度,但是个人拙见,这个控制器还是有些地方不是很完善,具体的API网上已经有很详细的解释了,现在具体说说开发中遇到的一些事(开发中采用的是double.所以问题都是基于此).

1. UIPageViewController 和 table 很像,都是需要提供数据源,page中的viewController,这在大部分帖子中都有提及,viewController提供了数据和视图,所以viewController 既是数据又是视图.

2. UIPageViewController delegate 中提供了翻页动画回调,这样可以在翻页开始和结束做一些事.(这个地方有个坑)

3. UIPageViewController 单独提供了一个方法,

- (void)setViewControllers:(nullable NSArray<UIViewController *> *)viewControllers direction:(UIPageViewControllerNavigationDirection)direction animated:(BOOL)animated completion:(void (^ __nullable)(BOOL finished))completion

类似 tableview 跳转到指定的位置.

基本的信息大致就这些了,简单说说遇到的问题:

1. UIPageViewController 连续点击(快速翻页) 会报警告,原因是刷新太频繁了,上一个vc还没有loadview结束,下一个vc有开始,所以会有一堆警告,

2. UIPageViewController 触发

- (nullable UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerBeforeViewController:(UIViewController *)viewController;
- (nullable UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerAfterViewController:(UIViewController *)viewController;

数据源已经换了,但是没有触发动画(复现: 在左侧慢慢向下直线滑动),所以这个时候,vc已经更换,但是视图没有变化.

3. 数据源的问题,vc充当数据源,需要一个数组保存一组vc,但是好多页面都可能是重复的,那么就没有必要搞那么多vc,够用行了(下次,会把 UIPageViewController复用vc的方法贴出来).

周末有时间会把相关源码放到GitHub上.

以上拙见,有不同者,欢迎聊聊.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值