两个UILabel之间的交叉淡入淡出

假设我有两个
UILabel
s(
labelOne
labelTwo
),我需要在两个标签之间交叉淡入淡出。实现这种效果的最佳方法是什么? 我已经尝试使用
[UIView beginAnimations:@"crossFade" context:nil];
等淡出
labelOne
然后淡入
labelTwo
但是当两个标签处于低不透明度并且你可以看到两者时,存在相当明显的间隙。我需要一个漂亮干净的交叉淡入淡出效果。我有一种感觉,我需要使用
CABasicAnimation
但我会很感激一些指导。提前致谢!     
已邀请:
这将使一个标签(或任何视图)淡出,同时淡入另一个标签。在动画的一半,两者都将达到50%的不透明度。要单独控制alpha,请为每个标签使用单独的动画,并延迟其中一个标签。
label_to_show.alpha = 0.0;
label_to_hide.alpha = 1.0;

[UIView beginAnimations:nil context:nil];

label_to_show.alpha = 1.0;
label_to_hide.alpha = 0.0;

[UIView commitAnimations];
    
你可以摆弄动画曲线尝试并找到一个可接受的外观,但我认为你会做得更好只是保持两个标签下面的第三个视图,以保持背景外观,同时淡入淡出发生。 如果你的意思是你可以同时看到两个标签不同时褪色,但是快速消失到标签开始不清楚的点,用相同渐变级别的新标签替换它,然后快速淡化到完全可见性。 我说“淡出”但是在标签顶部放置背景色视图并继续使视图更加不透明,切换下面的标签,然后再将其淡化为透明也可能看起来非常好。     
我已经实现了这样的东西,它运作良好。
[UIView transitionWithView:self duration:0.3 options:UIViewAnimationOptionTransitionCrossDissolve animations:^{
    _label1.hidden = YES;
    _label2.hidden = NO;
} completion:nil];
    

要回复问题请先登录注册