这就是我从一个 UIView 切换到另一个 UIView 的方式:self.view = MyView;
如何将视图淡出到我的MySecondView
?
问问题
2604 次
2 回答
6
您可以使用 UIView 的内置过渡代码在它们之间交叉溶解。
[UIView transitionFromView:self.view toView:MySecondView duration:0.25 options:UIViewAnimationOptionTransitionCrossDissolve completion:^(BOOL finished) {
// What to do when its finished.
}];
您还可以将常规动画选项与此类一起使用。我没有测试过这段代码,因为我不在 Xcode 前面,但我一直将它用于标签和没有默认动画的东西。
[UIView animateWithDuration:0.25 animations:^{
[self.view setAlpha:0.0];
self.view = mySecondView;
[self.view setAlpha:1.0];
}];
于 2012-08-07T14:34:59.123 回答
2
请注意,执行 self.view = MyView 之类的操作来更改屏幕并不是一个好主意。当您到达几个屏幕时,您的 viewController 将充满意大利面条式代码。您应该考虑提供管理其视图的新视图控制器。您可以进行淡入淡出的一种方法如下:
- 将当前视图淡化为黑色(带动画)
- 在您要推送的视图控制器中,使用 viewWillAppear 也可以将视图淡化为黑色
- 推送/呈现不带动画的视图控制器。
- 现在使用新呈现的视图控制器的 viewDidAppear 方法来淡入视图(带有动画)。
于 2012-08-07T14:41:27.890 回答