iOS PageViewController 分页控制器

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS PageViewController 分页控制器相关的知识,希望对你有一定的参考价值。

参考技术A 以下是使用继承YHPageViewController的方式

如果要实现PageViewController他的HeaderView悬浮的方式,可以去继承 YHPageHeaderViewController 控制器,也可以单独把分页控制器添加到自定义的 YHPageScrollView scrollview的子类中,自定义滚动悬浮效果。

示例:

欢迎 issues me

项目地址 https://github.com/MaiyaT/YHPageViewController

IOS:pageViewController界面方向

【中文标题】IOS:pageViewController界面方向【英文标题】:IOS: pageViewController interface orientation 【发布时间】:2015-07-10 18:06:21 【问题描述】:

我用代码创建它:

self.pageViewController = [[PageViewController alloc] initWithTransitionStyle:UIPageViewControllerTransitionStyleScroll navigationOrientation:UIPageViewControllerNavigationOrientationHorizontal options:@ UIPageViewControllerOptionInterPageSpacingKey : @30 ];
self.pageViewController.delegate = self;
self.pageViewController.dataSource = self;
self.pageViewController.automaticallyAdjustsScrollViewInsets = NO;
self.currentMediaPlayerViewController = [self createMediaPlayerViewControllerWithMediaItem:self.mediaItems[self.pageIndex]];
NSArray *pageViewControllers = @[self.currentMediaPlayerViewController];
[self.pageViewController setViewControllers:pageViewControllers
                                  direction:UIPageViewControllerNavigationDirectionForward
                                   animated:NO
                                 completion:nil];
[self addChildViewController:self.pageViewController];
[self.pageViewController didMoveToParentViewController:self];
[self.view addSubview:self.pageViewController.view];

我只在 parentVC 中为 pageViewController 启用横向。但仍然可以捕捉旋转。

- (void)viewDidLoad


self.navigationController.delegate = self;

NSNumber *value = @(UIInterfaceOrientationLandscapeLeft);
NSString *keyOrientation = @"orientation";
if (![value isEqualToNumber:@((NSInteger)[[UIDevice currentDevice] valueForKey:keyOrientation])]) 
    [[UIDevice currentDevice] setValue:value forKey:@"orientation"];



- (NSUInteger)navigationControllerSupportedInterfaceOrientations: (UINavigationController *)navigationController

return UIInterfaceOrientationMaskLandscape;

如何在 pageViewController 中仅启用横向?

【问题讨论】:

【参考方案1】:

尝试使用此代码

- (BOOL)shouldAutorotate

    return YES;


- (NSUInteger)supportedInterfaceOrientations

    if (self.isLandscapeOK) 
        // for iPhone, you could also return UIInterfaceOrientationMaskAllButUpsideDown
        return UIInterfaceOrientationMaskAll;
    
    return UIInterfaceOrientationMaskPortrait;

【讨论】:

以上是关于iOS PageViewController 分页控制器的主要内容,如果未能解决你的问题,请参考以下文章

IOS:pageViewController界面方向

iOS:如何在 PageViewController 的 ViewController 中使用 segue

IOS:通过PageViewController显示WebView

滚动视图内的pageviewcontroller内的iOS tableview

iOS/Swift/Storyboard:仅使用屏幕的 *part* 添加 PageViewController?

Pageviewcontroller 在 IOS 6 中不显示翻页动画