怎么在iOS中利用pageViewController实现多视图滑动切换

  介绍

本篇文章为大家展示了怎么在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实现多视图滑动切换