【发布时间】:2017-09-27 04:33:55
【问题描述】:
我有一个带有一个主视图控制器的程序,其中包括一个按钮,用户可以点击该按钮以通过UIPageViewController 显示 4 页“快速帮助”。这 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 11 在我的场景中默认错误地调整了 UIPageViewController 的大小,我也看不到任何明显的修复方法。有什么建议吗?
【问题讨论】:
-
这绝对是一个错误。另一个是 UINavigationController 中的浮动工具栏。希望他们能尽快解决这些问题。
-
感谢您的回答。仅供参考,如果它是一个独立的答案而不是评论,我会接受它作为答案;我看不到接受评论作为答案的方法。再次感谢。