您的位置:首页 > 产品设计 > UI/UE

UIPageViewController翻页背景改变

2015-01-26 11:00 1346 查看
由于项目需要,做一个电子书的效果,找了好多翻页效果,都没有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
如有任何问题请留言。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: