zoukankan      html  css  js  c++  java
  • UIPageViewController基本使用

    UIPageViewController基本使用

    @interface ViewController ()<UIPageViewControllerDelegate,UIPageViewControllerDataSource>
    
    @property(nonatomic,strong)UIPageViewController *pageVC;
    @property(nonatomic,strong)NSMutableArray *dataArr;
    @end
    
    @implementation ViewController
    
    -(NSMutableArray *)dataArr{
        if(!_dataArr){
            _dataArr = [NSMutableArray array];
            [_dataArr addObject:[MyViewController new]];
            [_dataArr addObject:[MyViewController new]];
            [_dataArr addObject:[MyViewController new]];
        }
        return _dataArr;
    }
    
    - (void)viewDidLoad {
        [super viewDidLoad];
        
        self.pageVC.view.bounds = CGRectMake(0, 0,SCREEN_WIDTH, SCREEN_HEIGHT);
        
    }
    -(UIPageViewController *)pageVC{
        if(!_pageVC){
            _pageVC = [[UIPageViewController alloc]initWithTransitionStyle:UIPageViewControllerTransitionStyleScroll navigationOrientation:UIPageViewControllerNavigationOrientationHorizontal options:nil];
            _pageVC.delegate = self;
            
            _pageVC.dataSource = self;
            
            [self addChildViewController:_pageVC];
            [self.view addSubview:_pageVC.view];
            [_pageVC didMoveToParentViewController:self];
            [_pageVC setViewControllers:@[self.dataArr[0]] direction:UIPageViewControllerNavigationDirectionForward animated:YES completion:nil];
        }
        return _pageVC;
    }
    #pragma mark UIPageViewControllerDelegate
    - (void)pageViewController:(UIPageViewController *)pageViewController didFinishAnimating:(BOOL)finished previousViewControllers:(NSArray<UIViewController *> *)previousViewControllers transitionCompleted:(BOOL)completed{
       
    }
    
    #pragma mark UIPageViewControllerDataSource
    - (nullable UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerBeforeViewController:(UIViewController *)viewController{
        NSInteger currentPage = [self.dataArr indexOfObject:viewController];
        if(currentPage <= 0){
            return  nil;
        }else{
            currentPage --;
            return self.dataArr[currentPage];
        }
    }
    - (nullable UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerAfterViewController:(UIViewController *)viewController{
        NSInteger currentPage = [self.dataArr indexOfObject:viewController];
    
        if(currentPage >= self.dataArr.count - 1){
            return  nil;
        }else{
            currentPage ++;
            return self.dataArr[currentPage];
        }
    }
    
  • 相关阅读:
    给暗黑2佣兵换装备,他/她说的英语是什么?
    为什么“家徒四壁”中的徒是仅仅,只有的意思?
    喜马拉雅几个有意思的订阅内容
    看似最艰苦的道路,长远考虑确是收益最大,实际上最容易的路
    《赠友》--杜运夑
    【Python】由host得到IP
    day31_Hibernate复习_03(补刀)
    day31_Hibernate复习_03
    day31_Hibernate学习笔记_03
    MyEclipse2017 CI 断点无效
  • 原文地址:https://www.cnblogs.com/hualuoshuijia/p/7986148.html
Copyright © 2011-2022 走看看