2015-03-10 1 views
0

Dans mon application ios, chaque cellule de TableView a une MapView dessus (chacune avec des points séparés). Quand un utilisateur clique sur le MKMapView, l'application devrait aller à un autre UIViewcontroller, affichant le MKMapView en plein écran et si cela s'est produit ailleurs dans la cellule, il devrait aller à une page «détails». Mais je ne peux pas obtenir le programme à reconnaître, si le robinet qui s'est produite dans le cadre de la MapView ou non. J'ai essayé -touchesBegan, mais le contrôle n'atteint même pas la méthode. Quelqu'un peut-il m'aider?Détails de MKMapView tapé dans un UITableViewCell

Répondre

0

Vous pouvez ajouter mapView à une autre instance UIControl et désactiver les prises sur la carte (mapView.userInteractionEnabled = NO). Et ajoutez la cible/action au contrôle. (Mais vous devriez faire quelque chose pour déterminer quel contrôle a été touché, par exemple vous pouvez utiliser la propriété tag du contrôle pour définir l'index du modèle).

2

Vous pouvez créer UIView personnalisé et ajouter mapView comme sous-vue de celui-ci et définir userInteractionEnabled sur NO. Maintenant, vous pouvez utiliser un UIGestureRecognizer pour détecter les contacts.

UITapGestureRecognizer *sigleTap = [[UITapGestureRecognizer alloc] 
initWithTarget:self action:@selector(handleGesture:)]; 
sigleTap.numberOfTapsRequired = 1; 
sigleTap.numberOfTouchesRequired = 1; 
[yourCustomView addGestureRecognizer:sigleTap]; 


- (void)handleGesture:(UIGestureRecognizer *)gestureRecognizer 
{ 
    your next logic 
} 
+0

UITapGestureRecognizer dans UITableView, peut ajouter un comportement d'ombre avec les touches de la cellule. Par exemple: http://goo.gl/oXoFzD. –