は、私は完全にあなたが検出する必要が触れたものを理解していないか、なぜ/あなたがそれらを検出する必要がありますか。しかし、私はGMSMapViewの上でtouchesbeganのためにユーザーパンのジェスチャーを検出する同様の問題を抱えていました。
私は自分の「現在地」ボタンを持っていたので、ユーザーは自分の場所の地図をオン/オフに切り替えることができます。マップのパンニング受信を中断することなく、ユーザーがいつマップを「パニング」したのかを知る必要がありました(私はまだマップをパンしたいと思っていました)。
まず、私はマップを作成しました:
// Creates Map centered at current location
GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:theLocationManager.location.coordinate.latitude
Longitude:theLocationManager.location.coordinate.longitude
zoom:15];
theMapView = [GMSMapView mapWithFrame:CGRectZero camera:camera];
theMapView.myLocationEnabled = YES;
theMapView.delegate = self;
theMapView.camera = camera;
self.view = theMapView;
それから私はパンジェスチャー認識を作成し、theMapView
のジェスチャー認識機能のプロパティにこれを追加しました。私は、セレクタ方式でself
にターゲットを設定してください行わdidPan:
// Watch for pan
UIPanGestureRecognizer *panRecognizer = [[UIPanGestureRecognizer alloc] initWithTarget: self action:@selector(didPan:)];
theMapView.gestureRecognizers = @[panRecognizer];
最後には、同じメインファイルで、私は反応する
didPan:
メソッドを実装し
際に、ユーザパン:
- (void) didPan:(UIPanGestureRecognizer*) gestureRecognizer
{
NSLog(@"DID PAN");
// React here to user's pan
}
本当にパーフェクトな答えです。+1 –