non sono sicuro capisco perfettamente quello che tocca si deve rilevare o perché/come avete bisogno di rilevarli. Tuttavia, ho avuto un problema simile nel rilevare i gesti di pan utente su GMSMapView a causa di touchesbegan: chiamato solo una volta.
Avevo il mio pulsante "posizione corrente" che consente all'utente di attivare o disattivare la centratura della mappa sulla loro posizione. Avevo bisogno di scoprire quando l'utente stava "spostando" la mappa senza interrompere la ricezione della mappa del panning (volevo che anche la mappa effettuasse il panning).
In primo luogo, ho creato la mappa:
// 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;
Poi ho creato un sistema di riconoscimento gesto padella e ha aggiunto che alla proprietà di riconoscimento gesto theMapView
s'. Ho fatto in modo di fissare l'obiettivo di self
con il metodo selettore didPan:
// Watch for pan
UIPanGestureRecognizer *panRecognizer = [[UIPanGestureRecognizer alloc] initWithTarget: self action:@selector(didPan:)];
theMapView.gestureRecognizers = @[panRecognizer];
Infine, nello stesso file principale, ho implementato il metodo didPan:
reagire quando le vaschette utente:
- (void) didPan:(UIPanGestureRecognizer*) gestureRecognizer
{
NSLog(@"DID PAN");
// React here to user's pan
}
fonte
2013-07-01 00:12:30
la sua risposta davvero perfetta. Grazie +1 –