Question

J'ai essayé de trouver une solution facile pour ce qui suit. J'ai une vue principale qui détient une tuile. Je veux faire glisser et déposez-le sur une UITableView. Je pouvais programmer le choix et faites glisser déjà avec UIGestureRecognizer.

Maintenant, mon problème est de savoir comment puis-je détecter dans la vue de la table qu'il ya un élément va être traîné au-dessus. Par exemple, je veux mettre en évidence la ligne donnée lorsque la tuile est déplacée au-dessus.

J'ai essayé d'ajouter les touchesMoved / A commencé / événements limitée à la viewCell. Ils ne reçoivent pas les feux quand je traîne la tuile dessus (autrement dit la tuile se cache une partie du viewCell sous mon doigt). Ils sont congédiés quand il n'y a pas de tuile halées.

Y at-il une méthode efficace hittest pour cela?

Merci.

Était-ce utile?

La solution

Il y a un tas de questions d'assurance-chômage ici qui devraient être abordés.

  • En général, glisser-déposer sur l'iPhone est une mauvaise idée. Il est très difficile de le faire, et d'obtenir la rétroaction va être problématique, parce que votre doigt sera obstruer l'opération de déplacement
  • à l'aide pour indiquer « dropability » peut vous êtes rejeté par les examinateurs App Store de cellule sélectionnée de la table; il est d'indiquer « Je l'ai choisi cette cellule », pas « Je vais laisser tomber quelque chose sur elle »

Cela dit, vous aurez probablement envie de gérer tous vos événements tactiles dans la vue « source », et d'envoyer les messages de table à partir de là, plutôt que d'essayer de jongler avec des messages autour. Une fois que votre -touchesBegan: withEvent: a été appelé dans une vue, tous -touchesMoved après: withEvent: et -touchesEnded: withEvent: sera envoyé à ce point de vue pour le cycle de vie de cette touche; les Forwarding autour de confondre le diable hors de toutes les personnes impliquées.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top