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
0
A
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
}
UITapGestureRecognizer dans UITableView, peut ajouter un comportement d'ombre avec les touches de la cellule. Par exemple: http://goo.gl/oXoFzD. –