Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/103.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios iPhone X:不安全区域不存在';我看不到近景的颜色_Ios_Autolayout_Iphone X_Safearealayoutguide - Fatal编程技术网

Ios iPhone X:不安全区域不存在';我看不到近景的颜色

Ios iPhone X:不安全区域不存在';我看不到近景的颜色,ios,autolayout,iphone-x,safearealayoutguide,Ios,Autolayout,Iphone X,Safearealayoutguide,我的应用程序是用自定义顶栏而不是UINavigationBar构建的,以满足一些使用默认UINavigationBar无法轻松完成的要求,但是,在阅读了的答案并更改了此顶栏的3个约束条件(顶、前导和尾随)后为了相对于安全区域而不是superview,我无法使安全区域自动着色以匹配顶部栏的颜色,下面是它现在的样子: 上面链接中的第一个答案建议手动为状态栏上色,但不幸的是,这是不合理的,它使用私有API来实现。第二个答案建议为主视图提供背景色,但这也是不合理的,因为我需要为主视图提供不同的颜色 我

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

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


我如何让不安全区域根据最近的视图(通过自动布局约束连接到该视图)自行着色?

以下是iPhone X上的安全区域布局示例

如果希望“不安全顶部区域”的颜色与最近的视图颜色相同,则有两种逻辑选择

通过使用两个视图,一个位于顶部,具有与超级视图相关的顶部约束(根据故事板上的SafeAreaLayout激活),另一个位于后者的正上方,其顶部约束链接到顶部安全区域。之后,将它们链接到viewcontroller,并将颜色管理到viewDidLoad方法中

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

现在应该可以正常工作了