MKMapView和AutoLayout问题

and*_*hen 8 xcode mkmapview autolayout swift

我想使用Map Kit View有一个View Controller的子视图,它只占用屏幕的一部分,而不是全屏视图.

我不确定以下是否是我应该报告的错误,或者我是否缺少关于如何使用Map Kit视图的重要知识.解释问题的最简单方法是通过图片.

在第一个屏幕截图中,我在使用Interface Builder的其他空白View Controller上设置了两个子视图,一个UIImageView和一个MKMapView.两个子视图都以相同的方式受到约束,即高度,宽度,约束到其超视图的顶部或底部,以及在容器中水平约束.Xcode没有错误.

问题前截图: 在此输入图像描述

第二个截图是在我重新启动Xcode之后.UIImageView是相同的,但MKMapView已将其宽度和高度增加到1,000.Xcode给出以下错误:"地图视图"的高度和垂直位置不明确.更新帧不会恢复正确的布局.要解决此问题,需要手动调整MKMapView的大小以适应ViewController,之后更新帧会将布局恢复为第一个屏幕截图中显示的布局.重新启动Xcode会导致问题重复出现.

重启Xcode后的屏幕截图: 在此输入图像描述

我正在使用App Store提供的最新版Xcode 8.

更新:
此错误已在Xcode 8.1中修复

Ind*_*ore 6

这似乎是一个错误,对于解决方法,您可以添加一个简单的UIView而不是MKMapKit,并在添加约束后将视图的类更改UIViewMKMapView.虽然您无法从故事板设置此地图视图的属性,但您可以使用它的插座在代码中设置它.

在此输入图像描述

我请求你把它作为bug @ https://bugreporter.apple.com提出来

  • XCode 8.2.1 - 我对MapView和自动布局没有任何问题.特别是试图在StackView中嵌入一个Map - MapView从未注册过正确的高度,或试图用Height = 9M覆盖!这是唯一能够根据方向和布局更改进行适当更新的解决方案. (2认同)