IOS 11 MKMapview在改变帧或旋转时改变缩放级别

Toy*_*dor 6 animation mkmapview ios ios11

我有一个MKMapView,我用这样的代码扩展和收缩:

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

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

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

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

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

更新:

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

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

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


IOS 11:

在此输入图像描述


IOS 9:

在此输入图像描述

Ste*_*hen 1

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

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