UIPageViewController 的简单使用

UISegmentedControl*segmen=[[UISegmentedControl alloc]initWithItems:@[@"1",@"2",@"3",@"4",@"5",@"6",@"7",@"8",@"9"]];
    segmen.frame = CGRectMake(0, 10,self.view.frame.size.width, 30);
    segmen.momentary = YES;
    [segmen setTintColor:[UIColor redColor]];
    
    [segmen addTarget:self action:@selector(changeSegment:) forControlEvents:UIControlEventValueChanged];
    [self.view addSubview:segmen];
    
    self.edgesForExtendedLayout = UIRectEdgeNone;
    
    NSDictionary *options = @{UIPageViewControllerOptionInterPageSpacingKey : @(20)};
    
    
    //  TransitionStyle是 UIPageViewControllerTransitionStyleScroll的时候用UIPageViewControllerOptionInterPageSpacingKey
    
    
    //    TransitionStyle是UIPageViewControllerTransitionStylePageCurl的时候有用UIPageViewControllerOptionSpineLocationKey会有翻页的效果
    
    //    NSDictionary *option = [NSDictionary dictionaryWithObject:[NSNumber numberWithInteger: UIPageViewControllerSpineLocationMin] forKey:UIPageViewControllerOptionSpineLocationKe
y];
    
    
    _pageViewController = [[UIPageViewController alloc]initWithTransitionStyle:UIPageViewControllerTransitionStylePageCurl navigationOrientation:UIPageViewControllerNavigationOrientationHorizontal options:options];
    _pageViewController.delegate =self;
    _pageViewController.dataSource = self;
    _pageViewController.view.frame = CGRectMake(0, 40,self.view.frame.size.width, self.view.frame.size.height);
    
    
 
    [_pageViewController setViewControllers:@[self.pageContentArray[0]] direction:UIPageViewControllerNavigationDirectionReverse animated:YES completion:nil];

    [self addChildViewController:_pageViewController];
    [self.view addSubview:_pageViewController.view];
 
}

-(void)changeSegment:(UISegmentedControl*)segment{
    
    [_pageViewController setViewControllers:@[self.pageContentArray[segment.selectedSegmentIndex]] direction:UIPageViewControllerNavigationDirectionForward animated:YES completion:nil];
    
}
//右滑的时候调用
-(UIViewController*)pageViewController:(UIPageViewController *)pageViewController viewControllerBeforeViewController:(UIViewController *)viewController{
    NSInteger index = [self.pageContentArray indexOfObject:viewController];
    if (index == 0 || (index == NSNotFound)) {
        return nil;
    }
    index--;
    if (index == [self.pageContentArray count]) {
        return nil;
    }
    return [self.pageContentArray objectAtIndex:index];
}

//左滑的时候调用
- (nullable UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerAfterViewController:(UIViewController *)viewController {
    
    NSInteger index = [self.pageContentArray indexOfObject:viewController];
    if (index == self.pageContentArray.count - 1) {
        return nil;
    }
    index++;
    return [self.pageContentArray objectAtIndex:index];
}
//翻页结束调用
- (void)pageViewController:(UIPageViewController *)pageViewController didFinishAnimating:(BOOL)finished previousViewControllers:(NSArray<UIViewController *> *)previousViewControllers transitionCompleted:(BOOL)completed{
    if (completed) {
        NSLog(@"结束");
    }
    
}

-(NSMutableArray *)pageContentArray{
    
    if (!_pageContentArray) {
        _pageContentArray = [NSMutableArray array];
        for (int i = 0; i<10; i++) {
            OneViewController *one = [OneViewController new];
            [_pageContentArray addObject:one];
        }
    }
    return _pageContentArray;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值