如何在iPhone X中将底部视图颜色扩展到Home指示器下方?

23
请查看附加的图片。Viewcontroller的视图背景颜色为蓝色。如您所见,该颜色延伸到状态栏和home指示器下方。底部有一个白色视图,是一个按钮。在这里,白色视图位于安全布局指南内。
我希望只针对iPhone-X,在不添加任何其他视图的情况下使相同的白色颜色延伸到Home指示器下方。
如何做到这一点?
图片链接:enter image description here
3个回答

34

你需要将白色视图的底部约束设置/附加到父视图。

按照以下步骤执行:

  • 检查视图的底部/底部对齐约束。它可能附加在安全区域的底部锚点/约束上。

enter image description here


  • (要编辑它) 双击底部约束,这将显示以下选项。
  • 现在将选择(勾号)从安全区域更改为父视图。

enter image description here


  • 如果没有,请将常量设置为 0

enter image description here


  • 这是您可能想要的结果。

enter image description here


1
谢谢。这个方法可行。但是如果您没有设置顶部约束,白色视图将会在主页指示线下面。在我的设计中,白色视图只有前导、尾随、底部和高度约束。我不得不添加另一个视图作为白色视图的子视图,并将约束设置为边距,以便在所有设备上(包括X)都能正常工作。 - abhimuralidharan
请务必查看已接受的答案,以获取此问题更一般的解决方案。 - user

21

Krunal的回答在大多数情况下有效。但是如果你没有设置顶部约束条件,白色视图将会被遮住 home 指示线。

图片描述

在我的设计中,白色视图只有前导、后续、底部和高度约束。我不得不添加另一个视图作为白色视图的子视图(这个视图从现在开始将充当白色视图),为外部白色视图启用安全区域布局指南,并设置与边距/安全区域的约束,以便在所有设备上都能正常工作,包括 X 设备。

NB: 高度约束应该设置为内部视图/按钮(在我的案例中),而不是外部视图。自动布局将适当地为您在 iPhone X 设备上完成工作。

图片描述

这就是在 iPhone X 和其他手机上的样子。 iPhone SE:

iPhone 5c

iPhone X:

图片描述

希望这可以帮助某些人。 :)


2
它仅支持iOS 9以上版本。 - Mehul
@abhi1992,是的,但我的应用程序也支持iOS 8。因此,在使用安全区域时,无法同时支持iOS 8和iOS 11.2。理解了兄弟...很简单。 - Mehul
视图有哪些限制条件?您还没有对此进行任何说明。 - Kampai
你能检查一下附加的第一张图片吗? - abhimuralidharan
我想在Xamarin.Forms中实现它。有什么建议吗? - Dharmendra Kumar

8
在我的情况下,我想让底部视图的高度为49。因此,将顶部设置为比底部布局指南高49。

enter image description here

然后将视图底部设置为父视图底部。

enter image description here

现在,在iPhone X上,该视图延伸到手机底部,并且仍然在安全区域上方有49的高度,在其他设备上,该视图的高度为49。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接