我使用这样的代码扩展和收缩的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:
IOS 9:
答案 0 :(得分:2)
找到解决方案!更多的黑客攻击:
将MapView放在Y上并将MapView设为固定高度,我使用:UIScreen.main.bounds.size.height
。
答案 1 :(得分:1)
尝试创建自己的地图视图并复制GIF后,似乎这是iOS 11中的一个问题。我看到过去其他视图也会出现类似的效果。
虽然它与上面显示的iOS 9 GIF不匹配,但更改框架的替代方法可能是更改转换属性。当然,地图会缩小,但上面没有任何可见的文物。