使用IOS MapKit,如何在拖动地图本身时获得回调?我知道我可以检测拖动的开始和结束,但是我想在拖动过程中获得回调。因此,当用户开始拖动时,我会在一系列回调之后,然后在他们仍然用手指向下并且没有释放的情况下休息,然后在他们继续拖动时进行更多回调。
背景:当用户移动地图时,想要一个触发器来更新当前地图的中心纬度/长度。不确定如何控制我的需求的更新速率,但是如果有回调函数,我可能不知道它是可配置的?
备份问题:如果使用MKMapView无法开箱即用,那么您最好如何建议我满足我的要求?
答案 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;
}