界面构建器:MapView 的自动布局

Interface builder: Autolayout for MapView

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

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

------------------
- 10% free space -
------------------
-                -
-   MapView      -
-                -
------------------
  1. 将 MKMapView 添加到父视图。
  2. 图钉:右、左、下 = 0。
  3. 为父级添加等于高度并将乘数设置为 0.90

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

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

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

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

您需要重试一些,但它有效

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

在 Xcode 8.0 版和 Swift 3 中遇到过这个问题 - 可能在 Xcode 的未来修订版中会解决这个问题