用于 mapView.setRegion 动画的 Swift 完成处理程序?

Joe*_*Joe 3 animation completionhandler swift

我试图弄清楚如何判断动画何时完成:

self.mapView.setRegion(MKCoordinateRegionForMapRect(mapRect), animated: true)

它看起来setRegion不像其他命令那样支持完成处理程序。

我知道如何使用这样的方法创建一个通用的完成处理程序: 如何在 Swift 中创建一个带有完成处理程序的函数?

但我不知道要检查什么变量来验证动画是否已完成。

Mik*_*rne 5

您可以为此目的实施MKMapViewDelegate 协议。从文档:

由于许多地图操作需要 MKMapView 类异步加载数据,因此地图视图会在特定操作完成时调用这些方法来通知您的应用程序。

这种方法应该做你想做的:

optional func mapView(_ mapView: MKMapView, regionDidChangeAnimated animated: Bool)
Run Code Online (Sandbox Code Playgroud)

告诉代理地图视图显示的区域刚刚改变。