Вот viewDidLoad из контроллера основного представления в тестовом проекте:
- (void)viewDidLoad
{[super viewDidLoad];
UIView *containerView = [[UIView alloc] initWithFrame:CGRectMake(10, 10, 300, 300)];
[self.view addSubview:containerView];
UIView *redView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 300, 300)];
[redView setBackgroundColor:[UIColor redColor]];
[containerView addSubview:redView];
UIView *yellowView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 300, 300)];
[yellowView setBackgroundColor:[UIColor yellowColor]];
[UIView transitionWithView:containerView duration:3
options:UIViewAnimationOptionTransitionFlipFromLeft animations:^{
[redView removeFromSuperview];
[containerView addSubview:yellowView];
}
completion:NULL];
}
Желтое поле только появляется.Там нет анимации, независимо от того, какой UIViewAnimationOption я пытаюсь.Почему ???
РЕДАКТИРОВАТЬ: я также пытался использовать executeSelector сDelay, чтобы переместить анимацию из viewDidLoad и в другой метод.Тот же результат - без анимации.
Также пробовал это: [UIView transitionFromView: redView toView: yellowView длительность: 3 варианта: UIViewAnimationOptionTransitionFlipFromLeft завершение: NULL];
Тем не менее, желтый вид только появляется.Без анимации.