Ios 从一个视图淡入另一个视图而不通过黑色过渡

Ios 从一个视图淡入另一个视图而不通过黑色过渡,ios,objective-c,Ios,Objective C,我尝试使用animateWithDuration淡入一个视图,淡出另一个视图,并更改每个视图的alpha值。我遇到的问题是,视图似乎在黑色背景中逐渐消失。我想保持过渡背景为白色,因为我的两个观点都有白色背景 我怎样才能在两个视图之间淡出,而不通过黑色背景过渡 这是我的密码: [self.view1 setAlpha:0.0]; [self.view addSubview:self.view1]; [UIView animateWithDuration:0.5 a

我尝试使用
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];}];

使用:
animateWithDuration:animations:completion:

  • 将新图像视图alpha设置为0
  • 将新图像视图放在当前图像视图的前面
  • 动画中:
    将新图像视图的alpha设置为1.0
  • completion:
    handler cleanup中,根据需要进行清理

  • 像这样的怎么样:

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

    这正是我正在做的。。。我遇到的问题是,出于某种原因,它会过渡到黑色。换句话说,它会在视图之间适当地淡入淡出,但随着动画的发生,背景会变暗。我该如何防止呢?区别在于,yopu正在对背面图像的alpha进行胺化,因此在每幅图像的中间有一个alp[ha为0.5,它们后面的背景显示为黑色。它们后面的背景也是白色。我尝试删除动画中的
    self.view2.alpha=0.0;
    ,但仍然是相同的问题。这很完美。这正是我试图实现的。为什么会被否决?