有沒有辦法確定MKMapView
是否停止拖動和縮放?檢測結束拖動/縮放MKMapView
現在我添加了UIPanGestureRecognizer
來拖動MKMapView
,但即使地圖滾動時用戶擡起手指,我也會立即收到gestureRecognizer.state == UIGestureRecognizerStateEnded
。我試圖弄清楚的是,在地圖仍然移動時和/或用戶再次觸摸地圖再次拖動地圖時,如何防止爲我的地圖註釋加載服務器數據?只有在地圖停止移動和縮放並靜止一段預定時間時才應調用數據加載機制。
這是我到目前爲止已經實現:
- (void)viewDidLoad {
...
UIPanGestureRecognizer* panRec = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(didDragMap:)];
[panRec setDelegate:self];
[panRec setDelaysTouchesBegan:YES];
[panRec setDelaysTouchesEnded:YES];
[panRec setCancelsTouchesInView:YES];
[self.mapView addGestureRecognizer:panRec];
}
和選擇方法 didDragMap:
- (void)didDragMap:(UIGestureRecognizer*)gestureRecognizer {
if (gestureRecognizer.state == UIGestureRecognizerStateBegan) {
_searchBar.text = @"";
_filtered = NO;
_crosshair.hidden = NO;
[self removeAllAnnotationExceptOfOriginalLocation];
}
else if (gestureRecognizer.state == UIGestureRecognizerStateEnded) {
[self performSelector:@selector(delayAddressResolving:) withObject:nil afterDelay:1.0];
}
}
的選擇方法 delayAddressResolving:是裝所需的數據從服務器顯示我的註釋信息。
歡迎各位注意!
你找到一些解決方案嗎?我有同樣的概率。 – Jasmeet
在我的情況下,我執行了一個獨立線程,該線程正在檢查放置在中間的Pin的Lat Long。如果當前和以前的值發生變化,API將被調用。請分享您的解決方案。 – Jasmeet