获取MKMapView回调,因为地图被用户拖动?

时间:2016-06-03 05:37:13

标签: ios mkmapview mapkit

使用IOS MapKit,如何在拖动地图本身时获得回调?我知道我可以检测拖动的开始和结束,但是我想在拖动过程中获得回调。因此,当用户开始拖动时,我会在一系列回调之后,然后在他们仍然用手指向下并且没有释放的情况下休息,然后在他们继续拖动时进行更多回调。

背景:当用户移动地图时,想要一个触发器来更新当前地图的中心纬度/长度。不确定如何控制我的需求的更新速率,但是如果有回调函数,我可能不知道它是可配置的?

备份问题:如果使用MKMapView无法开箱即用,那么您最好如何建议我满足我的要求?

1 个答案:

答案 0 :(得分:2)

您需要实现MKMapViewDelegate方法,例如

- (void)mapView:(MKMapView *)mapView regionWillChangeAnimated:(BOOL)animated;
- (void)mapView:(MKMapView *)mapView regionDidChangeAnimated:(BOOL)animated; 

或将你的panGesture添加到地图

UIPanGestureRecognizer* panRec = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(didDragMap:)]; 
panRec.delegate = self; 
[self.mapView addGestureRecognizer:panRec];

需要实现泛委托方法

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer {   
    return YES;
}