从一个视图淡出到另一个视图而不通过黑色过渡

时间:2015-01-24 22:37:23

标签: ios objective-c

我试图淡化一个视图,同时使用animateWithDuration淡化另一个视图并更改每个视图的alpha值。我遇到的问题是视图似乎在黑色背景中消失。我想保持过渡背景为白色,因为我的两个视图都有白色背景。

如果不转换为黑色背景,我如何在两个视图之间淡入淡出?

这是我的代码:

[self.view1 setAlpha:0.0];
[self.view addSubview:self.view1];
[UIView animateWithDuration:0.5
                 animations:^{self.view1.alpha = 1.0;self.view2.alpha = 0.0;}
                 completion:^(BOOL finished){[self.view2 removeFromSuperview];}];

2 个答案:

答案 0 :(得分:0)

使用:animateWithDuration:animations:completion:

  1. 将新图像视图alpha设置为0.
  2. 将新图像视图放在当前图像视图的前面。
  3. animations:中将新图片视图的alpha设置为1.0。
  4. completion:处理程序中清理你想要什么。

答案 1 :(得分:0)

这样的事情怎么样:

[UIView transitionWithView:self.view
                  duration:0.4
                   options:UIViewAnimationOptionTransitionCrossDissolve
                animations:^{
                    [self.view addSubview:self.view1];
                }
                completion:^(BOOL finished) {

                    [self.view2 removeFromSuperview];
                }];