UIVIEW Animation Block Не анимация Просмотр Собведа
-
27-09-2019 - |
Вопрос
Я не могу добиться любой анимации со следующим кодом:
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
];
}
Виды фактически заменяют, но просто без какой-либо анимации. Это довольно странно. Я также пытался поменять mapView
и tableView
с self.view.subviews
вот так (objectAtIndex:0
это 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
];
}
Решение
Вы используете неправильные варианты. С помощью этого метода вы должны использовать Константы UIViewAnimationВариантTransitionFlipFromLeft
и …Right
вместо.
Старые константы UIViewAnimationTransitionFlipFromLeft
и …Right
следует использовать только для неблок на основе метода +setAnimationTransition:…
. Отказ Эти константы имеют значения 1 и 2 соответственно, в то время как они упомянули выше, имеют значения 1 << 20 и 2 << 20, которые полностью отличаются.
Не связан с StackOverflow