0
我试图在前视图和后视图之间翻转,就像一本书的页面。我在视图控制器中运行了以下测试代码,并没有发生动画。我只看到后视图(红色方块)静态显示2秒。怎么了?UIView翻转动画不是动画
UIView *containerView = [[UIView alloc] initWithFrame:CGRectMake(0.0, 0.0, 100.0, 100.0)];
containerView.backgroundColor = [UIColor greenColor];
[self.view addSubview:containerView];
UIView *backView = [[UIView alloc] initWithFrame:containerView.bounds];
backView.backgroundColor = [UIColor redColor];
[containerView addSubview:backView];
UIView *frontView = [[UIView alloc] initWithFrame:containerView.bounds];
frontView.backgroundColor = [UIColor blueColor];
[containerView addSubview:frontView];
[UIView transitionFromView:frontView
toView:backView
duration:2.0
options:UIViewAnimationOptionTransitionFlipFromRight
| UIViewAnimationOptionShowHideTransitionViews
completion:^(BOOL finished) {
[containerView removeFromSuperview];
}];
我找到了问题的原因。您只能在绘制完成后对其进行动画处理。因此,您不能在同一个运行循环中创建视图并对它们进行动画处理。您的解决方案是将动画延迟到稍后运行循环的一种方法。也可以使用performSelector延迟动画。 – JoJo