如果MapKit Map已缩放到用户位置,请执行操作

时间:2015-03-26 18:16:40

标签: ios swift mapkit

我正在使用它来放大启动时的用户位置。

func locationManager(manager:CLLocationManager, didUpdateLocations locations:[AnyObject]) {
        var locationArray = locations as NSArray
        var locationObj = locationArray.lastObject as CLLocation
        var coord = locationObj.coordinate
        var newRegion = MKCoordinateRegion(center: coord, span: MKCoordinateSpanMake(spanX, spanY))
        mapView.setRegion(newRegion, animated: true)
    }

现在,如果地图已缩放到用户位置,我想采取行动。我尝试过使用mapDidChange委托方法,但是这种方法被解雇了几次。有什么想法如何巧妙地做到这一点? (iOS 8 / Swift)

1 个答案:

答案 0 :(得分:0)

在我看来,您可以将 newRegion的span 值与regionDidChangeAnimated中的地图视图的当前范围值进行比较。如果跨度值相同,则可以继续使用“mapview.region”。可以获得可见的mapView.region ,并将其与 newRegion 进行比较,或者获取当前可见区域的中心坐标,并将其与当前位置进行比较坐标可以工作。