界面生成器:MapView 的自动布局

Posted

技术标签:

【中文标题】界面生成器:MapView 的自动布局【英文标题】:Interface builder: Autolayout for MapView 【发布时间】:2016-06-27 11:36:11 【问题描述】:

Xcode 8 测试版 8S128d Interface Builder and Autolayout 一直困扰着我。我不能让它做我想做的事。

示例:只需要一个 ImageView 来填满屏幕(父级),但从顶部开始,ImageView 应该与顶部成比例。

------------------
- 10% free space -
------------------
-                -
-   MapView      -
-                -
------------------
    将 MKMapView 添加到父视图。 引脚:右、左、底部 = 0。 为父级添加等于高度并将乘数设置为 0.90

这适用于 ImageView 但不适用于 MapView。

【问题讨论】:

【参考方案1】:

我没有解决方案,但有一个可行的解决方法

不要将地图固定到封闭容器的边界,而是执行以下操作

1) 为 mapview 及其容器提供相等的宽度和高度 2) 手动将高度约束从 1 更改为 0.99 3) 在容器中水平和垂直居中地图视图。

您需要重试几次,但它可以工作

编辑:警告:Interface Builder 一直抱怨崩溃后缺少 Y 约束(并重新输入警告),但应用程序布局良好。

在 Xcode 版本 8.0 和 Swift 3 中遇到了这个问题 - 可能在未来的 Xcode 版本中这个问题将得到解决

【讨论】:

可以在目前处于测试阶段的最新 Xcode 8.1 中解决 adcdownload.apple.com/Documentation/… bug 回到 8.2.1

以上是关于界面生成器:MapView 的自动布局的主要内容,如果未能解决你的问题,请参考以下文章

自动布局混合代码和界面生成器

界面生成器中的自动布局

界面生成器问题中的 UIScollView 和自动布局

读书笔记iOS-自动布局

代码中设置的自动布局约束未出现在界面生成器中

界面生成器中的自动布局高度 >= 0 帧