在iOS 9,iPhone 5上,iOS 10及更高版本上没有发生
从情节提要中创建UIViewController,我将viewController的红色subView的view.top设置为安全区域top,红色视图位于statusBar下方。
如果从xib文件创建viewController,请使用init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: Bundle?)
并将红色subView的view.top设置为安全区域顶部,红色视图与statusBar位于相同的origin.y。如下所示:
从情节提要和xib创建的viewControllers是同一类,也许从情节提要和xib创建的viewControllers具有一些不同的设置,我尝试取消选择所有情节提要的select选项,但没有找到能起到作用的一个。
有人可以解释吗?谢谢!
答案 0 :(得分:0)
由于XIB文件没有XIB和较旧的iOS版本的Safe-Area指南,因此存在向后兼容性问题。
在当前的Xib向后部署行为(iOS 10和更低版本)中,安全区域的约束将转换为超级视图,因为XIB没有顶部和底部布局指南。
这可能无法实现所需的布局行为,我们建议您使用以下选项之一来解决这种情况:
1)将视图和布局移到情节提要视图控制器中
2)使用IB插座来约束相关的(顶部和底部)约束,并在安装视图后以编程方式将它们替换为顶部/底部布局指南的约束
3)将视图安装为子视图,并以编程方式向顶部/底部布局指南和侧面添加约束。