这是测试项目中主视图控制器的 viewDidLoad:
- (void)viewDidLoad
{ [超级 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 都没有动画。为什么???
编辑:我也尝试使用 performSelector withDelay 将动画移出 viewDidLoad 并进入另一个方法。同样的结果 - 没有动画。
也试过这个:[UIView transitionFromView:redView toView:yellowView duration:3 options:UIViewAnimationOptionTransitionFlipFromLeft completion:NULL];
仍然,黄色视图刚刚出现。没有动画。