2010-08-15 5 views
1

Je fais un jeu de cartes iPhone où chaque utilisation a un jeu de cartes, je voudrais donner à l'utilisateur la possibilité de faire glisser son doigt dans les cartes et chaque carte est mise en surbrillance pendant que son doigt est dessus. Cet effet est déjà fait dans Uno pour iPhone. Mes cartes sont mises dans UIButton, ce que j'ai essayé de faire est de mettre une petite image sur le bouton dans l'état normal et une plus grande image dans l'état en surbrillance, elle a effectivement obtenu l'effet que je recherchais, mais l'utilisateur doit carte individuellement pour être en mesure de voir l'image plus grande.Comment feuilleter un jeu de cartes?

Voici le code i utilisé pour définir l'état normal et surligné du UIButton:

//player413 is an IBOutlet to a UIButton, and img,imgHigh are UIImages 
[player413 setImage:img forState:UIControlStateNormal] ; 
[player413 setImage:imgHigh forState:UIControlStateHighlighted] ; 

Les lignes directrices?

Répondre

0

Utilisez une seule vue pour gérer toutes les interactions tactiles.

EDIT: Oh, d'accord.

Lorsqu'une vue reçoit une touche hitTest:withEvent: est appelée récursivement, jusqu'à ce qu'une vue qui "accepte" le toucher soit trouvée.

Une fois que hitTest:withEvent: renvoie une valeur non nulle, elle est terminée (par défaut); cette vue "possède" le toucher (voir UITouch.view). Seule cette vue obtient touchBegan/Moved/Ended/Canceled: withEvent: callbacks. Si vous voulez que le toucher affecte n'importe quelle carte dans le deck, le deck doit implémenter les touches *: withEvent:, et soit set userInteractionEnabled = NO sur les sous-vues, soit surcharger hitTest: withEvent: donc il retourne "self" au lieu de une des "cartes". Puis, en touches *: withEvent :, détecter quelle "carte" la touche est activée, puis card.highlighted = YES. Si vous avez multipleTouchEnabled = NO, vous pouvez supposer qu'il n'y a qu'une touche et utiliser UITouch * touch = [touches anyObject].

(Il y a une poignée de classes UIKit qui sont assis en quelque sorte entre le toucher et son point de vue de posséder:. UIScrollView peut intercepter le contact et faites défiler la place, de reconnaissance de geste annuler touche quand ils détectent un gesure)

+0

Pouvez-vous s'il vous plaît Elaborer sur ça ? –

+0

Merci, c'était très utile :) –

Questions connexes