9

我有一个带有一个主视图控制器的程序,其中包括一个按钮,用户可以点击该按钮以通过UIPageViewController. 这 4 个页面是 QuickHelpViewController0ID - QuickHelpViewController3ID,每个页面都是标准的UIViewController. 当他们点击按钮时,我运行这个:

-(void)showQuickHelp
{
    // Load the quick help page view controller
    self.quickHelpPageVC = [self.storyboard instantiateViewControllerWithIdentifier:@"QuickHelpPageViewControllerID"];
    self.quickHelpPageVC.dataSource = self;

    // Create initial quick help page
    UIViewController *quickHelpVCA = [self quickHelpVCForPageIndex:0];
    NSArray <UIViewController *> *quickHelpVCs = @[quickHelpVCA];

    // And assign it to the page VC
    [self.quickHelpPageVC setViewControllers:quickHelpVCs direction:UIPageViewControllerNavigationDirectionForward animated:NO completion:nil];

    [self presentViewController:_quickHelpPageVC animated:YES completion:nil];
}  // showQuickHelp:

当用户滚动到下一页/上一页时,我还提供了一个UIPageViewControllerDataSource根据需要创建 4 个页面中的每一个。

这在 iOS 9.3 和 10.x 上运行良好。它也适用于除 iPhone X(模拟器)以外的所有设备的 11.0。在这方面,4 个页面指示点行位于屏幕底部,仅比 iOS 11 提供的新“主页栏”高 1 或 2 个像素(向上滑动以切换应用程序等)。

我发现了来自 Apple 的一个名为Building Apps for iPhone X的视频,其中开发人员讨论了解决类似问题,但在这种情况下,他的解决方案是简单地更改自动布局以将孩子限制UIPageControl在底部“安全区域”而不是传统的底部布局指南。但我没有UIPageControl在另一个视图控制器上使用;我正在使用UIPageViewController,并且我看不到任何方法来控制页面控件沿窗口底部的位置。(是的,我在 Interface Builder 中启用了“使用安全区域布局指南”选项。)

我无法想象 iOS 11UIPageViewController在我的场景中默认大小不正确,我也看不到任何明显的修复方法。有什么建议么?

4

2 回答 2

9

对此的修复将在 11.2 中推出

https://9to5mac.com/2017/10/30/ios-11-2-beta-1/

UIKit - 已解决的问题

在 iPhone X 上的 UIPageViewController 中显示页面控件不再与屏幕底部的主页指示器重叠。(34478195)

于 2017-11-02T19:59:29.243 回答
1

我遇到了同样的问题,但发现如果我取消选中主视图控制器上的“延伸边缘 - 底部栏下方”,点会向上移动并在模拟器上正确显示 iPhone X。不幸的是,它还会在所有其他设备上向上移动点……如果页面上没有太多内容,这可能不是问题,但对我来说,它截断了一页,上面有很多文字。

它绝对看起来像一个错误,所以我会等待 Apple 希望解决这个问题,因为我不想让讨厌的黑客以编程方式更改底部栏标志下的扩展边缘,仅适用于 iPhone X

于 2017-10-09T08:58:14.300 回答