regiondidchange多次调用应用程序加载swift

问题描述:

我有一个地图,当我平移或输入一个位置并导航到它时,我想要一个简单的打印功能运行。然而,我有这个成就,当我第一次加载应用程序它调用该打印功能几次,直到它完成放大。有没有办法不计算初始应用程序加载区域更改?regiondidchange多次调用应用程序加载swift

+0

香港专业教育学院试图FUNC mapViewDidFinishLoadingMap(MapView类:的MKMapView){ FUNC MapView类(MapView类:的MKMapView,regionDidChangeAnimated动画:BOOL){ 流浪汉() }} – RubberDucky4444

+0

这FUNC mapViewDidFinishRenderingMap(MapView类:的MKMapView,fullyRendered:BOOL){ FUNC MapView类(MapView类:的MKMapView,regionDidChangeAnimated动画:BOOL){ 流浪汉() }} – RubberDucky4444

答案终于找到herehttp://ask.ttwait.com/que/5556977

private var mapChangedFromUserInteraction = false 

private func mapViewRegionDidChangeFromUserInteraction() -> Bool { 
let view = self.mapView.subviews[0] 
// Look through gesture recognizers to determine whether this region change is from user interaction 
if let gestureRecognizers = view.gestureRecognizers { 
    for recognizer in gestureRecognizers { 
     if(recognizer.state == UIGestureRecognizerState.Began || recognizer.state == UIGestureRecognizerState.Ended) { 
      return true 
     } 
    } 
} 
return false 
} 

func mapView(mapView: MKMapView, regionWillChangeAnimated animated:  
Bool) { 
mapChangedFromUserInteraction = 
mapViewRegionDidChangeFromUserInteraction() 
if (mapChangedFromUserInteraction) { 
    // user changed map region 
} 
} 

func mapView(mapView: MKMapView, regionDidChangeAnimated animated: 
Bool) { 
if (mapChangedFromUserInteraction) { 
    // user changed map region 
} 
}