控制翻页c语言,阅读器多种翻页的设计与实现

本文详细介绍了在iOS中实现阅读器的四种翻页模式:平移、仿真、滑页和上下。平移和仿真模式利用UIPageViewController实现,滑页和上下滑动则需要自定义实现。对于滑页,文章讲解了如何监听用户手势,实时获取界面VC,处理滑动和动画。最后,文中还讨论了滑动过程中可能遇到的问题及解决方案。
摘要由CSDN通过智能技术生成

前言

前文介绍的是小说阅读器的设计和实现,本文作为补充对多种翻页模式做详细剖析。

正文

常见的阅读器翻页模式包括:平移、仿真、滑页和上下:

平移:左右滑动;

0773b8c8437c

仿真:左右滑动;(纸质书翻页效果)

0773b8c8437c

滑页:左右滑动;(覆盖效果)

0773b8c8437c

上下:上下滑动;

0773b8c8437c

1、平移

UIKit提供UIPageViewController可以很方便实现平移的页面切换效果,使用流程:

1、创建UIPageViewController;

self.pageVC = [[UIPageViewController alloc]

initWithTransitionStyle:UIPageViewControllerTransitionStyleScroll

navigationOrientation:UIPageViewControllerNavigationOrientationHorizontal

options:

@{

UIPageViewControllerOptionSpineLocationKey:@(UIPageViewControllerSpineLocationMin)

}];

self.pageVC.delegate = self;

self.pageVC.dataSource = self;

[self addChildViewController:self.pageVC];

[self.view addSubview:self.pageVC.view];

2、初始化首个界面;

- (void)customInitFirstPage {

UIViewController *vc = [self getRandomVCWithIndex:5];

[self.pageVC setViewControllers:@[vc]

direction:UIPageViewControllerNavigationDirectionReverse

animated:NO

completion:^(BOOL finished) {

}];

}

3、滑动时返回相邻的界面;

#pragma mark - UIPageViewControllerDelegate

- (nullable UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerBeforeViewController:(UIViewController *)viewController {

UIViewController *ret;

UIViewController *vc = viewController;

if (vc) {

NSInteger index = vc.view.tag;

if (index > 0) {

ret = [self getRandomVCWithIndex:index - 1];

}

}

return ret;

}

- (nullable UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerAfterViewController:(UIViewController *)viewController {

UIViewController *ret;

UIViewController *vc = viewController;

if (vc) {

NSInteger index = vc.view.tag;

if (index < 10) {

ret = [self getRandomVCWithIndex:index + 1];

}

}

return ret;

}

2、仿真

相对安卓,iOS实现这个翻页效果非常方便——UIPageViewController同样支持这个翻页效果。

使用流程和平移类似,但多了一些注意事项:

initWithTransitionStyle:由UIPageViewControllerTransitionStyleScroll变为UIPageViewControllerTransitionStyleScroll;

支持翻页的时候,对背面做一个自定义展示,需要打开self.pageVC.doubleSided = YES;;

初始化界面的时候和平移一样,但是在使用过程中再调用-setViewControllers时,如果a

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值