UIPageViewController翻页背景改变

由于项目需要,做一个电子书的效果,找了好多翻页效果,都没有iBooks做的好,看了一下是用的UIPageViewController做的,但是有个缺陷是翻页背景总是白色,google了很长时间才找到答案,现在我把这些分享一下。

同问题地址:http://stackoverflow.com/questions/12381773/how-to-change-shadow-background-white-to-other-colors

上面是这么说的:我试着改变UIPageViewController翻页动画后的背面颜色,但是总是显示白色。如何改变这个翻页后的的背面颜色。iBook正是这样做的。

原效果图如下:


正确做法:

UIPageViewController 中有 doubleSided 这个属性,置为YES后

- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerBeforeViewController:(UIViewController *)viewController;
- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerAfterViewController:(UIViewController *)viewController;
会让上方的每种方法执行两次,也就是说,当你翻转一下的时候,其实是翻转了两个页面,只不过将第一页显示在翻转时的背面,第二页显示在正面。

因此我们可以这样:

第一次执行时,将当前界面截取图片后放入BackViewController,并且记录下下次执行应该显示的MoreViewController。

第二次执行时,将第一次记录MoreViewController放入。

Abras 给出了他的做法:

https://github.com/mattabras/DoubleSidedPageViewController

这个例子有BUG,正向翻页的时候是没有问题的,但是,后退翻页的时候翻页背景就出错了。

我将这个例子做了修复。贴出下载地址:

http://download.csdn.net/detail/zqx654033799/8396875
该示例代码,有内存释放错误,修复方法:

DemoViewController.h 
中的 
@property (assign, nonatomic) DemoViewController *currentViewController; 
修改为 
@property (strong, nonatomic) DemoViewController *currentViewController;

如有任何问题请留言。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值