我的应用是使用自定义顶栏而不是UINavigationBar
构建的,以满足使用默认UINavigationBar
无法轻松完成的一些要求,但是,在阅读this question的答案后,并且将这个顶栏(顶部,前导和尾部)的3个约束更改为相对于安全区域而不是超级视图,我无法获得安全区域自动着色以匹配顶部的颜色吧,这就是现在的样子:
第一个答案建议手动为状态栏添加颜色,但遗憾的是这是不合理的,它使用私有API来执行此操作。并且第二个答案建议为主视图提供背景颜色,但这也是不合理的,因为我需要为主视图使用不同的颜色。
如何让不安全区域根据与自动布局约束连接的最近视图自行着色?
答案 0 :(得分:0)
以下是iPhone X上安全区域布局的示例。
如果你想要那个不安全的顶级区域"获得与最近视图颜色相同的颜色,您有两个合理的选择。
通过使用两个视图,一个在顶部,顶部约束与 superview 相关(根据故事板上的SafeAreaLayout激活),另一个刚好超出后者,其顶部约束链接到顶级安全区域。之后,将它们链接到您的viewcontroller并将颜色管理到viewDidLoad方法中。
通过仅使用一个视图,另一个选择可能更容易。将其顶部,前导和尾随约束设置为 Superview (而不是安全区域布局)。要避免界面构建器错误,请为视图设置固定高度。
它现在应该正常工作。