Question

Je suis incapable de réaliser une animation avec le code suivant:

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. Il est tout à fait étrange. J'ai aussi essayé de mapView d'échange 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
         ];
}
Était-ce utile?

La solution

Vous utilisez les mauvaises options. Avec cette méthode, vous devez utiliser les constantes UIViewAnimationOptionTransitionFlipFromLeft et …Right à la place.

Les vieilles constantes UIViewAnimationTransitionFlipFromLeft et …Right ne doivent être utilisés pour la méthode de la non-bloc +setAnimationTransition:…. Ces constantes ont des valeurs 1 et 2 respectivement, tandis que les I mentionnés ci-dessus ont des valeurs de 1 << 20 et 2 << 20, qui sont totalement différents.

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