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:UIPageViewControllerOptionSpineLocationKey];
_pageViewController.dataSource = self;
_pageViewController.view.frame = CGRectMake(0, 40,self.view.frame.size.width, self.view.frame.size.height);
[self addChildViewController:_pageViewController];
[self.view addSubview:_pageViewController.view];
}
-(void)changeSegment:(UISegmentedControl*)segment{
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:UIPageViewControllerOptionSpineLocationKey];
_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;
}
}
//右滑的时候调用
-(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;
}