4

我的应用程序是使用自定义顶栏而不是UINavigationBar为了满足默认无法轻松完成的一些要求而构建的UINavigationBar,但是,在阅读了此问题的答案并更改了此顶栏的 3 个约束(顶部、前导和尾随)之后为了相对于安全区域而不是超级视图,我无法让安全区域自动着色以匹配顶部栏的颜色,这是现在的样子:

在此处输入图像描述

上面链接中的第一个答案建议手动为状态栏着色,但不幸的是这是不合理的,它使用私有 API 来执行此操作。第二个答案建议为主视图提供背景颜色,但这也是不合理的,因为我需要为主视图使用不同的颜色。

如何让不安全区域根据通过自动布局约束连接到它的最近视图为自己着色?

4

1 回答 1

0

这是 iPhone X 上安全区域布局的示例。

https://1.bp.blogspot.com/-nKGb8plVgd8/Wdir-wLm6tI/AAAAAAAADmo/z3G6lWBlomASUtRJ6COYYKPdPC6KdMlBACLcBGAs/s1600/safe_area.png

如果您希望您的“不安全顶部区域”获得与最近视图颜色相同的颜色,您有两个合乎逻辑的选择。

通过使用两个视图,一个在顶部具有与超级视图相关的顶部约束(根据情节提要上的SafeAreaLayout激活),另一个在后者之上,其顶部约束与顶部安全区域相关联。之后,将它们链接到您的视图控制器并将颜色管理到您的 viewDidLoad 方法中。

通过仅使用一个视图,另一种选择可能更容易。将其顶部、前导和尾随约束设置为Superview(而不是安全区域布局)。为避免界面生成器错误,请为您的视图设置固定高度。

它现在应该可以正常工作了。

于 2017-10-23T08:52:48.027 回答