2010-10-29 2 views
4

Je suis incapable de réaliser une animation avec le code suivant:UIView bloc d'animation non les sous-vues de vue de l'animation

if (self.segmentControl.selectedSegmentIndex == 0) { 
    [UIView transitionFromView:tableView 
         toView:mapView 
         duration:1.0 
         options:UIViewAnimationTransitionFlipFromLeft 
        completion:nil 
     ]; 
    } 
if (self.segmentControl.selectedSegmentIndex == 1) { 
    [UIView transitionFromView:mapView 
         toView:tableView 
         duration:1.0 
         options:UIViewAnimationTransitionFlipFromRight 
        completion:nil 
     ]; 
} 

Les vues échangez en fait, mais juste sans aucune animation. C'est assez étrange. J'ai aussi essayé d'échanger mapView et tableView avec self.view.subviews comme si (objectAtIndex:0 est un toolBar):

if (self.segmentControl.selectedSegmentIndex == 0) { 
    [UIView transitionFromView:[self.view.subviews objectAtIndex:1] 
         toView:[self.view.subviews objectAtIndex:2] 
         duration:1.0 
         options:UIViewAnimationTransitionFlipFromLeft 
        completion:nil 
     ]; 
    } 
if (self.segmentControl.selectedSegmentIndex == 1) { 
    [UIView transitionFromView:[self.view.subviews objectAtIndex:2] 
         toView:[self.view.subviews objectAtIndex:1] 
         duration:1.0 
         options:UIViewAnimationTransitionFlipFromRight 
        completion:nil 
     ]; 
} 

Répondre

17

Vous utilisez les mauvaises options. Avec cette méthode, vous devez utiliser the constants UIViewAnimationOptionTransitionFlipFromLeft and …Right à la place. Les anciennes constantes UIViewAnimationTransitionFlipFromLeft et …Right ne doivent être utilisées que pour la méthode sans bloc +setAnimationTransition:…. Ces constantes ont respectivement les valeurs 1 et 2, alors que celles que j'ai mentionnées ci-dessus ont des valeurs 1 < < 20 et 2 < < 20, qui sont totalement différentes.

+0

Merci beaucoup! Je suppose que c'est un bogue dans Xcode qu'il ne suggère pas ou ne reconnaît même pas cette option lors de la compilation (bien qu'il compile sans erreurs, ne change pas la couleur du texte en une option compilée "OK"). – runmad

+0

@Canada: Ce n'est pas un bogue dans Xcode, mais le standard C ('gcc') n'empêche pas les constantes de' enum's différentes de se mélanger. – kennytm

+0

Ouais, désolé, j'ai regardé la classe un peu plus et j'ai vu les choses du compilateur. Merci :) – runmad

Questions connexes