2010-06-02 6 views
1

J'essaye de construire une application qui aura un tas de cartes que l'utilisateur a besoin de faire glisser et déposez-les sur des zones de dépôt spécifiques. Comment procéder pour détecter cela et si la carte n'est pas dans la zone de largage, alors elle devrait revenir en arrière.Construire drag and drop interface sur l'iphone

Des suggestions sur la façon de structurer cette application?

Répondre

4

Test View.center par rapport à vos limites. quelque chose comme ça peut-être:

if(((draggedBox.center.x >= droppingBox.origin.x) && 
      (draggedBox.center.y <= droppingBox.origin.y)) && 
      (draggedBox.center.x <= (droppingBox.origin.x + droppingBox.width) && 
      (draggedBox.center.y >= (droppingBox.origin.y + droppingBox.height))) { 

    //do stuff because its inside 
} 

else { 

    //send it back from whence it came 
    draggedBox.center = cgpointmake(originalXposition,originalYposition); 

} 
+0

Pouvez-vous élaborer s'il vous plaît? Comment devrais-je tester contre les limites des limites? – Obaid

+0

alors est-ce votre réponse? – nickthedude

+0

Nick, pouvez-vous me dire comment ressemblerait le code "renvoyer d'où il venait"? Ai-je besoin de le mettre en cache quelque part? – Obaid

2

Vous devriez regarder CGRectContainsRect (draggedBox.frame, droppingBox.frame);