如何在 iPhone X 的主页指示器下方扩展底视图颜色?

Posted

技术标签:

【中文标题】如何在 iPhone X 的主页指示器下方扩展底视图颜色?【英文标题】:How to extend bottom view colour below the home indicator in iPhone X? 【发布时间】:2017-11-09 12:05:20 【问题描述】:

请检查所附图片。 Viewcontroller 的视图的背景颜色为蓝色。如您所见,此颜色延伸到状态栏下方和主页指示器下方。底部有一个白色视图,它是一个按钮。这里的白色视图位于安全布局指南内。

我希望相同的白色在主页指示器下方延伸,而不为 iPhone-X 添加任何额外的视图。

如何做到这一点?

【问题讨论】:

【参考方案1】:

你需要用超级视图设置/附加你的白色视图的底部约束。

按照以下步骤操作并查看:

检查视图的底部/底部对齐约束。它可以附有底部锚/安全区域的约束。

(编辑它)双击底部约束,它将显示以下选项。 现在将选择(勾选标记)从安全区域更改为超级视图。

如果不是,请将常量设置为 0

这是您可能想要的结果。

【讨论】:

谢谢。这会奏效。但是,如果您没有设置顶部约束,则白色视图将位于主指示线下方。在我的设计中,白色视图只有前导、尾随、底部和高度约束。我必须将另一个视图作为子视图添加到白色视图,并将约束设置为边距,以便让这个东西适用于包括 X 在内的所有设备。 请务必查看已接受的答案,以获得更通用的解决方案。【参考方案2】:

Krunal 的答案在大多数情况下都有效。但是,如果您没有设置顶部约束,白色视图将位于主指示线下方。

在我的设计中,白色视图只有前导、尾随、底部和高度约束。我必须将另一个视图作为子视图添加到白色视图(此视图从现在起将充当白色视图),启用外部白色视图的安全区域布局指南并将约束设置为边距/安全区域,以便让这个东西适用于包括 X 在内的所有设备。

注意:应为内部视图/按钮(在我的情况下)而不是外部视图设置高度约束。自动布局将在 iphone X 设备中为您正确完成工作。

这就是它在 iphone X 和其他手机中的外观。 iPhone SE:

iPhone X:

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

【讨论】:

仅支持 > ios 9. @abhi1992,是的,但是我的应用程序也支持 iOS 8。因此,当您使用安全区域时,iOS 8 和 iOS 11.2 无法同时使用。了解兄弟...它很简单 View 的约束是什么?你还没有具体说明它。 你能看看附上的第一张图片吗? 我想在 Xamarin.Forms 中实现它。有什么建议吗?【参考方案3】:

在我的例子中,我希望底部视图的高度为 49。所以将顶部设置为底部布局指南上方的 49。

然后将view底部设置为superview底部。

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

【讨论】:

以上是关于如何在 iPhone X 的主页指示器下方扩展底视图颜色?的主要内容,如果未能解决你的问题,请参考以下文章

如何检测 iPhone X 主页指示灯?

iPhone X 主页指示灯行为

UITableview 与 iPhone X 上的主页指示器合并

iPhone X 自定义标签栏问题

iPhone X 设计适配指南 & iOS 11 新特性

iPhone-X - 如何强制用户滑动两次主页指示器进入主屏幕