UIPageViewController使用示例
2015-09-13 19:45
411 查看
#import "MediumController.h" #import "PhotoViewController.h" #import "VideoViewController.h" @interface MediumController ()<UIPageViewControllerDataSource,UIPageViewControllerDelegate> { NSMutableArray *_pageArray; UIPageViewController *_pageCtrl; UISegmentedControl *_segCtrl; //当前页 NSInteger _curPage; } @end @implementation MediumController - (void)viewDidLoad { [super viewDidLoad]; [self createTopView]; [self createPageData]; [self createPagrVC]; [self createBackBtn]; self.view.backgroundColor = [UIColor whiteColor]; } //创建顶部按钮 -(void)createTopView { _segCtrl = [[UISegmentedControl alloc] initWithItems:[NSArray arrayWithObjects:@"预告片",@"剧照", nil]]; [_segCtrl addTarget:self action:@selector(clickSegCtrl:) forControlEvents:UIControlEventValueChanged]; [_segCtrl setTitleTextAttributes:@{NSForegroundColorAttributeName:[UIColor whiteColor]} forState:UIControlStateNormal]; [_segCtrl setTitleTextAttributes:@{NSForegroundColorAttributeName:[UIColor blackColor]} forState:UIControlStateSelected]; [_segCtrl setTintColor:[UIColor whiteColor]]; _segCtrl.frame = CGRectMake(100, 7, kScreenWidth-200, 30); if (_type == MoviesType) { _segCtrl.selectedSegmentIndex = 0; } else if(_type == PhotoType) { _segCtrl.selectedSegmentIndex = 1; } self.navigationItem.titleView = _segCtrl; } //创建pagecontrol -(void)createPagrVC { NSInteger index = _type; _pageCtrl = [[UIPageViewController alloc] initWithTransitionStyle:UIPageViewControllerTransitionStyleScroll navigationOrientation:UIPageViewControllerNavigationOrientationHorizontal options:nil]; _pageCtrl.delegate = self; _pageCtrl.dataSource = self; [_pageCtrl setViewControllers:@[_pageArray[index]] direction:UIPageViewControllerNavigationDirectionForward animated:nil completion:nil]; _pageCtrl.view.frame = CGRectMake(0, 0, kScreenWidth, kScreenHeight); [self.view addSubview:_pageCtrl.view]; } //创建数据源 -(void)createPageData { _pageArray = [NSMutableArray array]; VideoViewController *vvc = [[VideoViewController alloc] init]; vvc.videoArray = _videoArray; [_pageArray addObject:vvc]; PhotoViewController *pvc = [[PhotoViewController alloc] init]; pvc.photoArray = _photoArray; [_pageArray addObject:pvc]; } -(void)clickSegCtrl:(UISegmentedControl *)ctrl { NSInteger index = ctrl.selectedSegmentIndex; [_pageCtrl setViewControllers:@[_pageArray[index]] direction:index<_curPage animated:YES completion:^(BOOL finished){ _curPage = index; }]; } #pragma mark --UIPageViewController代理---- -(UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerAfterViewController:(UIViewController *)viewController { NSInteger index = [_pageArray indexOfObject:viewController]; if (index+1 == _pageArray.count) { return nil; } return _pageArray[index+1]; } -(UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerBeforeViewController:(UIViewController *)viewController { NSInteger index = [_pageArray indexOfObject:viewController]; if (index == 0) { return nil; } return _pageArray[index-1]; } -(void)pageViewController:(UIPageViewController *)pageViewController didFinishAnimating:(BOOL)finished previousViewControllers:(NSArray *)previousViewControllers transitionCompleted:(BOOL)completed { _curPage = [_pageArray indexOfObject:pageViewController.viewControllers[0]]; _segCtrl.selectedSegmentIndex = _curPage; } @end
相关文章推荐
- UI优化技巧:使用ViewStub
- 定义Iterator遍历器取出set中的key,然后通过key的值在map中取出对应value值
- IOS每天15个注意点系列之UI-帧动画与图片浏览
- StringBuffer和StringBuilder
- UVALive 5031 Graph and Queries (Treap)
- CF #296 (Div. 1) B. Clique Problem 贪心(构造)
- Implement Stack using Queues -- leetcode
- UITableViewCell
- Windows消息队列,UI线程,窗口以及消息处理方式总结
- 使用ueditor,controller.jsp总报错
- UITextField使用的相关方法
- UI:字典的两种取值的区别
- Android build error "No rule to make target"
- 出现提示ERROR 1289 The 'InnoDB' feature is disabled; you need MySQL built with 'InnoDB' to have IT working
- LeetCode Repeated DNA Sequences
- uint8_t/uint16_t/uint32_t/uint64_t 等是什么数据类型
- hibernate主键生成策略 @GeneratedValue 与 @GenericGenerator
- IOS UI学习 UITableView Demo 实现类似QQ联系人收起和展开效果
- UIScreen 类
- 给UITextView添加PlaceHolder