0

假设我有两个UILabels (labelOnelabelTwo),我需要在两个标签之间交叉淡入淡出。实现这种效果的最佳方法是什么?

我尝试过使用[UIView beginAnimations:@"crossFade" context:nil];etc. 淡出labelOne然后淡入,labelTwo但是当两个标签的不透明度都较低并且您可以看穿两者时,会有相当明显的差距。我需要一个干净的交叉淡入淡出效果来代替。我有一种需要使用的感觉,CABasicAnimation但我希望得到一些指导。提前致谢!

4

3 回答 3

2

这将使一个标签(或任何视图)淡出,同时淡入另一个标签。动画进行到一半,两者的不透明度都为 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];
于 2010-12-22T08:41:24.537 回答
0

我已经实现了类似的东西,而且效果很好。

[UIView transitionWithView:self duration:0.3 options:UIViewAnimationOptionTransitionCrossDissolve animations:^{
    _label1.hidden = YES;
    _label2.hidden = NO;
} completion:nil];
于 2013-09-03T16:25:30.853 回答
0

您可以摆弄动画曲线并尝试找到可接受的外观,但我认为您会做得更好,只需在两个标签下方保留第三个视图以在发生淡入淡出时保持背景外观。

如果您的意思是您可以同时看到两个标签不会同时淡化,而是快速淡化到标签开始不清楚的程度,请将其替换为相同淡化级别的新标签,然后将其快速淡化到全面的能见度。

我说“淡入淡出”,但将背景色视图放在标签顶部并继续使该视图更加不透明,切换下面的标签,然后再次将其淡化为透明,看起来也很好。

于 2010-12-22T08:05:39.783 回答