Gesture Recognizer を介して GMSMapView でドラッグ/パン ジェスチャをキャプチャする際に奇妙な問題が発生しています。この問題は、GMS 1.2 から 1.3.1 に更新した後にのみ表面化しました。
タッチは GMSMapView によってより積極的に消費されます
メインビューの下に GMSMapView を保持する UIViewController があります。GMSMapDelegate はドラッグ/パン ジェスチャを処理するためのメソッドを提供しないことがわかったので、UIViewController に UIPanGestureRecognizer を追加し、IBAction セレクターにリンクし、ここにリンクされているスクリーンショットに従って、参照アウトレットとアウトレット コレクションを設定しました: http://i .stack.imgur.com/gktoa.png
したがって、以下のように、ドラッグ アクションは単純にrecognizeDragOnMap:
セレクターをトリガーします。
-(IBAction)recognizeDragOnMap:(id)sender {
NSLog(@"recognizeDragOnMap");
UIGestureRecognizer *gestureRecognizer = (UIGestureRecognizer *)sender;
if (gestureRecognizer.state != UIGestureRecognizerStateEnded) {
NSLog(@"Still dragging");
return;
}
NSLog(@"DragEnded");
GMSCameraPosition *position;
if ((position = self.mapView.camera)) {
self.automaticCameraPositionChange = NO;
CLLocationCoordinate2D coordinate = [position targetAsCoordinate];
CLLocation *location = [[CLLocation alloc] initWithLatitude:coordinate.latitude longitude:coordinate.longitude];
[self.origin dragPinToLocation:location];
} else {
NSLog(@"No map camera");
}
}
このセットアップは、GMS 1.2.0 で完全に機能していました。更新後、GMSMapView は以前と同じようにジェスチャに応答しますが、上記のメソッドは呼び出されません!
何が起きているか、および/またはそれを修正する方法を知っている人はいますか?