切换设备时布局中断

时间:2018-08-25 11:58:04

标签: ios xcode autolayout iphone-x

我必须承认我不是Auto Layout的忠实拥护者。但是我想因为iPhone X我需要使用它。

无论如何,我的布局很简单。我在底部有一个粉红色的地图视图(MKMapView)对象和一个视图(UIView)对象。

我有两个布局要求。 (1)地图视图的顶部必须粘贴到安全区域。 (2)粉色视图的底部保留在超级视图上。

首先,我选择iPhone X作为布局设备。

对于地图视图,我选择了安全区域和地图视图,并在顶部边缘添加了align。我还向左边缘添加对齐并向右边缘对齐。所以我得到以下内容。

enter image description here

对于粉红色的底视图,我选择(超级)视图,然后选择粉红色的家伙向底部边缘添加对齐。然后,将align添加到顶部,左侧和右侧边缘。另外,高度设置为48点。所以我得到以下内容。

enter image description here

现在,如果我将布局设备切换到iPhone 8 Plus,则布局将保持不变。但是,如果我从iPhone X切换到iPhone SE,它将严重损坏,如下所示。

enter image description here

如何在不考虑设备的情况下保持布局?谢谢。

1 个答案:

答案 0 :(得分:0)

我无法完全复制您的屏幕快照显示的内容;特别是我无法使顶层视图具有“底层空间到底层视图”的后代约束。我怀疑您还有其他一些导致冲突的约束。我认为最好从这个视图控制器开始,以确保您不会意外添加不属于您的约束。
将Map Kit View和一个View拖到该新控制器中,将View重命名为“ Bottom View”,然后向Map Kit View中添加新约束,如下所示: enter image description here

然后添加底部视图的约束,如下所示: enter image description here