【问题标题】:CATransaction animation fade in fade out uiviewsCATransaction 动画淡入淡出 uiviews
【发布时间】:2025-12-18 10:45:01
【问题描述】:

我有两个视图,jumpBarPortrait 和 jumpBarLandscape 我想在两者之间制作动画,换句话说,我希望在风景淡出时人像淡入...到目前为止,我可以淡入其中一个,但我不能确定如何让另一个淡出...

这是我目前的代码..

[CATransaction begin];
CATransition *animation = [CATransition animation];
animation.type = kCATransitionFade;
animation.duration = animationSpeed;

[self.view insertSubview:jumpBarContainerPortrait belowSubview:actionTabBar];

[[jumpBarContainerPortrait layer] addAnimation:animation forKey:@"Fade"];
[CATransaction commit];

任何帮助将不胜感激。

【问题讨论】:

  • 别忘了 [CATransaction flush];

标签: iphone ios animation uiview


【解决方案1】:

你看过这个方法吗……

        [UIView transitionFromView:jumpBarContainerPortrait
                            toView:jumpBarContainerLandscape
                          duration:0.5
                           options:UIViewAnimationOptionTransitionCrossDissolve
                        completion:^(BOOL finished) {}];

或者将fromView/toView翻转回来。

【讨论】:

    【解决方案2】:

    您插入视图以淡入但不删除视图淡出,试试这个:

    [CATransaction begin];
    CATransition *animation = [CATransition animation];
    animation.type = kCATransitionFade;
    animation.duration = animationSpeed;
    
    [self.view insertSubview:jumpBarContainerPortrait belowSubview:actionTabBar];
    [[jumpBarContainerPortrait layer] addAnimation:animation forKey:@"Fade"];
    
    [fadeOutView removeFromSuperview];
    [[fadeOutView layer] addAnimation:animation forKey:@"Fade"];
    
    [CATransaction commit];
    

    【讨论】:

    • hrmmm...这根本不是动画...(意味着根本没有褪色)