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:は、サーバーから必要なデータを読み込んで、注釈の情報を表示しています。
すべてのメモは大歓迎です!