UIView bringSubviewToFront: ne *pas* apporter de la vue de face

Je me suis mise en œuvre d'une simple iOS jeu de solitaire qui permet à l'utilisateur de faire glisser les cartes autour de la manière habituelle. Les cartes sont représentées avec des UIView sous-classe CardView. Toutes les cartes de la vue sont des frères et sœurs qui sont des sous-vues de SolitaireView. L'extrait de code suivant tente "d'introduire une carte à l'avant" de sorte qu'il est au-dessus de tous les autres points de vue que c'est d'être entraînés:

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
   UITouch *touch = [touches anyObject];
   if (touch.view.tag == CARD_TAG) {
      CardView *cardView = (CardView*) touch.view;
      ...
      [self bringSubviewToFront:cardView];
      ...
   }
}

Malheureusement, la carte z-ordre reste inchangé au cours de la traînée. Dans les images ci-dessous, je suis en faisant glisser le Roi. Remarquez comment il est correctement sur le plan de la période de Neuf dans l'image de gauche, mais est incorrectement sous les Deux (en vertu de l'ensemble de la pile en fait) dans l'image de droite:

UIView bringSubviewToFront: ne *pas* apporter de la vue de face

J'ai aussi essayé de modifier le layer.zPosition propriété ainsi en vain.
Comment puis-je apporter la carte vue de l'avant au cours de la drague? Je suis perplexe.

J'ai découvert que bringSubviewToFront: déclenche la vue 'needsLayout' drapeau à définir. Mon layoutSubviews méthode a également été l'appel de bringSubviewToFront: revenant ainsi à tous la vue z-commandes de retour à leur état initial!
Alors quel est la solution pour cela? J'ai aussi eu le même genre de conditions, le cas de la liste de cartes, si je choisis tout de le centre de la carte, elle doit venir, puis venir à l'avant. mais mon animation ne fonctionne pas en raison de bringSubviewToFront: méthode
Si vous vous en tenez à l'aide de UIView sous-classes, alors vous devez marquer la carte déplacée de sorte que layoutSubviews pouvez le placer sur le dessus. J'ai effectivement passé à l'aide de CALayers comme mentionné ci-dessous.
Merci pour votre réponse. Pouvez vous s'il vous plaît de placer le code pour que.
Un extrait de code ci-dessous.

OriginalL'auteur wcochran | 2012-04-04