我在屏幕底部有一个UIToolbar
,其中包含三个按钮,每个按钮都有不同的背景颜色。我使用“自动布局”,并将工具栏限制在底部的布局指南中(我必须支持iOS 8,因此没有“安全区域布局指南”),以便工具栏正确显示在iPhone X Home Indicator上方。
我的问题是我希望按钮能够覆盖工具栏的整个高度并在“主页指示器”下方绘制。我目前有这个:
请注意“主页”指示器下方的空白。
我希望按钮背景色可以覆盖该空间(标签当然必须保持在“主页指示器”上方)
我必须一直支持设备,直到 iOS 8 ,横向和纵向模式。
编辑:
当我将工具栏限制在超级视图的底部时,它的位置太低了,并且按钮被Home指示器覆盖了:
答案 0 :(得分:1)
如果您使用的是自动布局,则需要将底部约束添加到非安全区域的超级视图中,否则它将起作用。
如果您使用的是镜架,则可以稍微调整一下高度以获得所需的结果。
编辑:
如果您想支持iOS 11以下的设备,则可以使用以下技巧检查设备类型并相应地指定标签栏的高度,但是您必须在代码中给出约束。
if #available(iOS 11.0, *) {
if UIApplication.shared.windows[0].safeAreaInsets.bottom > 0{
//The device is a notch device and you need to give extra height to accommodate the bottom button and tab (Make sure your labels are attached to the top so they are properly placed over the bottom line)
}else{
//The device is not a notch device and is iPhone 8 or less so you can have regular tab bar height
}
} else {
//You probably do not have to worry about increased tab bar height and you can give regular tab bar height
}
这可能不是最佳解决方案,但您现在可以解决当前的问题。 希望对您有帮助
答案 1 :(得分:0)
您必须通过为每个按钮设置“高度约束”并根据设备状况增加/减少约束来发挥作用。
答案 2 :(得分:0)
我认为这对您有用。
因此,在Nouch设备中,此虚拟视图会展开,而在其他设备中,其高度会自动变为零。
不需要设备特定的编码。