swift - 自动布局无法正确处理 iPhone X 缺口

标签 swift autolayout constraints iphone-x pagecontrol

我已经使用 swift 在我的应用程序顶部实现了一个 pageViewIndicator。我一直在我个人的 iPhone 上测试它,它一直有效,但是当使用 iPhone X 模拟器时,我注意到它消失在缺口后面,仅仅是因为我没有提到将它放在安全区域内或者安全区域是尚未正确配置。这是比较:

pageController on iPhone 8 pageController on iPhone X

这似乎是一个简单的问题,但我目前还没有找到任何关于如何处理这个问题的适当支持:主要建议是调整 safeAreaInsets,但我不明白如何将其应用于 AutoLayout功能。我已尝试向 pageController 添加 topAnchor 约束,但是否可以使用基本算术对其进行编辑?

pageControl.topAnchor.constraint(equalTo: view.safeAreaLayoutGuide.topAnchor).isActive = true

最佳答案

不需要“调整”任何东西。安全区域的全部是它的顶部在非 X iPhone 上的状态栏下方和 iPhone X 上的“缺口”下方。这就是安全区域的用途.

因此,只需将页面控件的顶部固定到安全区域的顶部即可。这是它在 iPhone 5s 模拟器上的样子:

enter image description here

这是它在 iPhone X 模拟器上的样子:

enter image description here

关于swift - 自动布局无法正确处理 iPhone X 缺口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48601005/

相关文章:

ios - 为什么我不能使用自动布局创建多行 UILabel?有些事情总是不对劲

ios - 在具有特定约束的 ScrollView 中显示图像(使用自动布局)

swift - Swift 中的字符串子类解决方法

ios - 无尽的背景 Sprite 套件

ios - 使用自动布局时,如何调整 CALayer 的 anchor ?

c# - C#.NET 中 liskov 原则的类型参数约束

java.lang.IllegalArgumentException : can't parse argument number: Phone 异常

flutter - 请问您在flutter中设置插件的约束是什么?

ios - 出现键盘时移动具有自动布局约束的文本字段

python - 在哪里可以找到 "get-pip.py"下载链接?