UIView non blocco animazione subviews di vista dell'animazione
-
27-09-2019 - |
Domanda
Non sono in grado di raggiungere qualsiasi animazione con il seguente codice:
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
];
}
I punti di vista sono in realtà lo swapping, ma solo senza alcuna animazione. E 'abbastanza strano. Ho anche cercato di mapView
swap e tableView
con self.view.subviews
in questo modo (objectAtIndex:0
è 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
];
}
Soluzione
Si sta utilizzando le opzioni sbagliate. Con questo metodo, è necessario utilizzare noreferrer le costanti UIViewAnimationOptionTransitionFlipFromLeft
e …Right
.
Il UIViewAnimationTransitionFlipFromLeft
vecchi costanti e …Right
devono essere utilizzati solo per il metodo +setAnimationTransition:…
non basato blocco. Queste costanti hanno valori 1 e 2 rispettivamente, mentre quelli che ho citato sopra hanno valori 1 << 20 e 2 << 20, che sono completamente differenti.