我有一个带有一个主视图控制器的程序,其中包含一个按钮,用户可以点击该按钮通过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
,也没有看到任何明显的修复方法。有什么建议吗?
答案 0 :(得分:9)
对此的修复将在11.2中进行。
https://9to5mac.com/2017/10/30/ios-11-2-beta-1/
UIKit - 已解决的问题
在iPhone X上的UIPageViewController中显示页面控件不再与屏幕底部的主页指示符重叠。 (34478195)
答案 1 :(得分:1)
我有同样的问题,但发现如果我取消选中主视图控制器上的'Extend Edges - Under Bottom Bars',这些点会向上移动并在模拟器上正确显示iPhone X.不幸的是,它也会在所有其他设备上移动点...如果页面上没有太多内容可能不是问题,但对我来说它会截断一页上有大量文本。
它看起来肯定是一个错误,所以我会等待Apple希望能解决这个问题,因为我宁愿不用恶劣的黑客来以编程方式更改底部栏标志下的延伸边缘仅适用于iPhone X