IOS 11 MKMapview在改变帧或旋转

时间:2017-10-23 13:25:55

标签: ios animation mkmapview ios11

我使用这样的代码扩展和收缩的MKMapView:

UIView.animate(withDuration: 0.5) {
   mapView.frame = CGRect(x: 0, y: 0, width: 200, height: 400)
}

在IOS 11之前,上述代码将在动画完成后触发regionDidChangeAnimated委托方法。它会改变它的区域并让缩放级别。

在IOS 11中,只是缩放变化。没有触发任何委托方法。

我需要像以前一样拥有它。更改地图框架应该只是使可见区域更大而不变焦。

我尝试在更改mapViews帧之前设置mapView.isZoomEnabled = false,但缩放级别不断变化。

更新

我添加了两个动画GIF来比较IOS 11与以前的IOS版本。

IOS 11将在展开动画之前立即放大。在完成反向动画后,它将缩小。

如下所示,IOS 9动画像丝绸一样光滑。

IOS 11:

enter image description here

IOS 9:

enter image description here

2 个答案:

答案 0 :(得分:2)

找到解决方案!更多的黑客攻击:

将MapView放在Y上并将MapView设为固定高度,我使用:UIScreen.main.bounds.size.height

答案 1 :(得分:1)

尝试创建自己的地图视图并复制GIF后,似乎这是iOS 11中的一个问题。我看到过去其他视图也会出现类似的效果。

虽然它与上面显示的iOS 9 GIF不匹配,但更改框架的替代方法可能是更改转换属性。当然,地图会缩小,但上面没有任何可见的文物。