介绍
本篇文章为大家展示了怎么在iOS中利用pageViewController实现多视图滑动切换,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
<强>思路1:强>使用嵌套,collectionview嵌套,每个条目中添加内容
<强>思路2:强>使用滚动视图在上面创建一个一个的控制器实现左右滑动
<强>当停留在第一页的时候,点击标题栏第五页,那么平移的过程就是第一页到第五页,所有的页面从屏幕快速闪过>强,并且看到现在很多应用都是这样的。在此之前我是用的思路2,为了避免跨页面切换出现的中间几个页面闪过的过程,直接把平移动画关闭了。直到使用了uipageViewController,赶紧把项目中的给换掉了
代码不多150行以内
# import “ViewController.h"///,当前控制器 # import “MyViewController.h",///,复用的controller 适用于每个控制器布局相同的情况下,,布局不同就创建不同的控制器添加进来 # import “TitleCollectionViewCell.h"///,标题栏使用的collectionviewcell @interface ViewController () & lt; UIPageViewControllerDelegate UIPageViewControllerDataSource, UICollectionViewDelegate UICollectionViewDataSource> { ,////记录当前页,当前标题位置 ,NSInteger ld_currentIndex; } @property (原子,,强烈),UIPageViewController * pageViewController; @property (原子,,强烈),NSMutableArray * controllersArr;///,控制器数组 @property (原子,,强烈),NSMutableArray * titleArray;,///,标题数组 @property (原子,,强烈),UICollectionView * titleCollectionView;,///,标题collectionview @end @implementation ViewController 安康;(空白)viewDidLoad { ,[super viewDidLoad];=,self.view.backgroundColor [UIColor whiteColor];=,self.navigationController.navigationBar.translucent 没有;=,self.controllersArr [NSMutableArray 数组);=,self.titleArray [NSMutableArray 数组); ,////如果控制器布局相同则循环创建MyViewController 添加进数组,,如果controller 布局不同,那就创建多个不同控制器依次添加数组 ,for (int 小姐:=,0;,小姐:& lt;, 10;,我+ +),{ ,MyViewController * con =, [[MyViewController alloc] init]; ,(self.controllersArr addObject: con); ,NSString * str =, (NSString stringWithFormat: @"第,% d 页“,,i + 1];=,,con.titlestring  str; ,(self.titleArray addObject: str); ,} ,[self createCollectionView]; ,[self createPageViewController]; ,[self setTheFirstPage]; }///,创建标题collectionview 安康;(空白)createCollectionView { ,UICollectionViewFlowLayout * lay =, [[UICollectionViewFlowLayout alloc], init);=,,lay.itemSize  CGSizeMake (60, 30);=,lay.minimumLineSpacing 0;=,lay.minimumInteritemSpacing 0;=,,lay.scrollDirection  UICollectionViewScrollDirectionHorizontal;=,self.titleCollectionView [[UICollectionView alloc], initWithFrame: CGRectMake(0,, 34岁,375年,30),collectionViewLayout:躺);=,self.titleCollectionView.showsHorizontalScrollIndicator 没有;=,self.titleCollectionView.backgroundColor [UIColor whiteColor];=,self.titleCollectionView.delegate 自我;=,self.titleCollectionView.dataSource 自我; ,[self.titleCollectionView registerClass: [TitleCollectionViewCell 类],forCellWithReuseIdentifier: @" titleReuse"]; ,[self.navigationController.view addSubview self.titleCollectionView):; }////,标题collectionview的协议方法 安康;(NSInteger) collectionView:(UICollectionView *) collectionView numberOfItemsInSection: {(NSInteger)部分 ,return self.titleArray.count; } 安康;(UICollectionViewCell *) collectionView:(UICollectionView *) collectionView cellForItemAtIndexPath: (NSIndexPath *) indexPath { ,TitleCollectionViewCell * cell =, (collectionView dequeueReusableCellWithReuseIdentifier: @" titleReuse", forIndexPath: indexPath);=,,cell.titleLabel.text  self.titleArray (indexpath。row); ,if (indexPath.row ==, ld_currentIndex), {=,cell.titleLabel.textColor [UIColor orangeColor]; ,其他}{=,cell.titleLabel.textColor [UIColor blackColor]; ,} ,return 细胞; }////,点击标题左右切换视图控制器- - - - - - - - - - - -再也不用看到好几个中间页面从屏幕快速闪过了- - - - - - 安康;(空白)collectionView:(UICollectionView *) collectionView didSelectItemAtIndexPath: (NSIndexPath *) indexPath { ,UIViewController * vc =, (self.controllersArr , objectAtIndex: indexpath。row); ,if (indexPath.row 祝辞,ld_currentIndex), { ,(self.pageViewController setViewControllers: @ (vc),方向:UIPageViewControllerNavigationDirectionForward 动画:YES 完成:^ (BOOL 完成),{ ,}]; ,}else { null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null怎么在iOS中利用pageViewController实现多视图滑动切换