【发布时间】:2011-10-20 18:14:14
【问题描述】:
我有 10 个UILabels,也许还有一些UIImageViews。我想在 1 UIView 中显示所有这些,并一个接一个地平滑 FadeOut 和 FadeIn 过渡。
我知道将 UIView 动画放在 for 循环中是行不通的,因为动画是异步完成的,并且不会产生适当的效果。所以通常我会这样做的方式是将UIView动画链接在一起。即在一个元素动画完成后开始下一个。对于 3-4 个元素,代码看起来没问题。像这样 -
[UIView animateWithDuration:0.25
delay:0
options:UIViewAnimationCurveEaseInOut
animations:^{ //do something with alpha here - first element }
completion:^(BOOL finished){
[UIView animateWithDuration:0.25
delay:0
options:UIViewAnimationCurveEaseInOut
animations:^{ //do something with alpha here - 2nd element}
completion:^(BOOL finished){ ... }
}
但是对于 10 多个元素,它会变得非常混乱。怎么做呢?本质上,我正在创建一个带有循环内容的UIView,就像一个小部件。
【问题讨论】:
标签: objective-c ios animation uiview core-animation