UIPageViewController实现的左右滑动界面

本文实例为大家分享了UIPageViewController实现左右滑动界面展示的具体代码,供大家参考,具体内容如下


.h

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController

@end

.m

#import "ViewController.h"

#import "SubPage1ViewController.h"

#import "SubPage2ViewController.h"

@interface ViewController ()<UIPageViewControllerDataSource,UIPageViewControllerDelegate>

@property NSArray *contentViewControllers; //ViewControllers

@property (nonatomic, span) UIPageViewController *pageViewController;

@end

@implementation ViewController

- (void)viewDidLoad {

[super viewDidLoad];

[self pageViewController];

}

- (void)didReceiveMemoryWarning {

[super didReceiveMemoryWarning];

// Dispose of any resources that can be recreated.

}

#pragma mark

#pragma mark ----- UIPageViewControllerDataSource -----

- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerBeforeViewController:(UIViewController *)viewController

{

NSUInteger index = [self indexForViewController:viewController];

if (index == 0) {

index = [self.contentViewControllers count] - 1;

} else {

index--;

}

return [self viewControllerAtIndex:index];

}

- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerAfterViewController:(UIViewController *)viewController

{

NSUInteger index = [self indexForViewController:viewController];

index++;

if (index == [self.contentViewControllers count]) {

index = 0;

}

return [self viewControllerAtIndex:index];

}

- (NSUInteger)indexForViewController:(UIViewController *)viewController

{

return [self.contentViewControllers indexOfObject:viewController];

}

- (UIViewController *)viewControllerAtIndex:(NSUInteger)index

{

if (index > [self.contentViewControllers count]) {

return nil;

}

UIViewController *vc = [self.contentViewControllers objectAtIndex:index];

return vc;

}

#pragma mark

#pragma mark ----- UIPageViewControllerDelegate -----

- (void)pageViewController:(UIPageViewController *)pageViewController willTransitionToViewControllers:(NSArray *)pendingViewControllers

{

}

- (void)pageViewController:(UIPageViewController *)pageViewController didFinishAnimating:(BOOL)finished previousViewControllers:(NSArray *)previousViewControllers transitionCompleted:(BOOL)completed

{

}

#pragma mark

#pragma mark Init

- (UIPageViewController *)pageViewController

{

if(!_pageViewController)

{

NSDictionary *options =[NSDictionary dictionaryWithObject:[NSNumber numberWithInteger:UIPageViewControllerSpineLocationMin]

forKey: UIPageViewControllerOptionSpineLocationKey];

_pageViewController = [[UIPageViewController alloc] initWithTransitionStyle:UIPageViewControllerTransitionStyleScroll

navigationOrientation:UIPageViewControllerNavigationOrientationHorizontal

options:options];

[[_pageViewController view] setFrame:[[self view] bounds]];

_contentViewControllers = [NSMutableArray arrayWithObjects:[SubPage1ViewController new],[SubPage2ViewController new],nil];

// 设置UIPageViewController的配置项

[_pageViewController setViewControllers:[NSArray arrayWithObjects:_contentViewControllers[0], nil]

direction:UIPageViewControllerNavigationDirectionForward

animated:NO

completion:nil];

_pageViewController.delegate = self;

_pageViewController.dataSource = self;

[self addChildViewController:self.pageViewController];

[self.view addSubview:self.pageViewController.view];

}

return _pageViewController;

}

以上是 UIPageViewController实现的左右滑动界面 的全部内容, 来源链接: utcz.com/z/346454.html

回到顶部