UIPagecontroller

来源:互联网 发布:js元素节点举例 编辑:程序博客网 时间:2024/04/30 19:27

明天一定要给自己加个鸡腿,表扬一下自己周日完成了任务

滑动式的使用UIPageCOntroller要分两步走,一步最外层控制整体UI以及上层segment数据,一步做内容专门用来显示数据.这里要注意,先请求完segment里面的数据,再去绘制UI.

- (UIPageViewController *)pageVC{    if (_pageVC) {        return _pageVC;    }    _pageVC = [[UIPageViewController alloc] initWithTransitionStyle:UIPageViewControllerTransitionStyleScroll                                              navigationOrientation:UIPageViewControllerNavigationOrientationHorizontal                                                            options:nil];    _pageVC.delegate = self;    _pageVC.dataSource = self;#warning todo    UIViewController *firstVC = [self viewControllerAtIndex:0];    NSArray *viewControllers = [NSArray arrayWithObject:firstVC];//    [_pageVC setViewControllers:viewControllers                      direction:UIPageViewControllerNavigationDirectionReverse                       animated:NO                     completion:nil];        _pageVC.view.frame = (CGRect){0,0+SEGMENTHEIGHT ,K_SCREEN_WIDTH,K_SCREEN_HEIGHT-SEGMENTHEIGHT};        [self addChildViewController:_pageVC];    return _pageVC;}

注意这个

仅仅是为了第一次跳到内容的时候就会执行相应网络请求,并不是指定这个能翻多少页.

#pragma mark -UIPageViewControllerDataSource- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerAfterViewController:(UIViewController *)viewController {        NSUInteger index = [self indexOfViewController:(HQWYSupplyListVC *)viewController];    if (index == NSNotFound) {        return nil;    }    index++;    if (index == [self.dataSource count]) {        return nil;    }    return [self viewControllerAtIndex:index];}- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerBeforeViewController:(UIViewController *)viewController {        NSUInteger index = [self indexOfViewController:(HQWYSupplyListVC *)viewController];    if ((index == 0) || (index == NSNotFound)) {        return nil;    }    index--;    return [self viewControllerAtIndex:index];    }- (void)pageViewController:(UIPageViewController *)pageViewController didFinishAnimating:(BOOL)finished previousViewControllers:(NSArray<UIViewController *> *)previousViewControllers transitionCompleted:(BOOL)completed{    HQWYSupplyListVC *cateListVc = (HQWYSupplyListVC *)pageViewController.viewControllers[0];    [self.segment setSelectedSegmentIndex:cateListVc.index];}

最外层的完;




内层的比较简单;执行网络请求绘制UI就完事.

0 0
原创粉丝点击