【发布时间】:2016-09-20 09:34:10
【问题描述】:
我有一个简单的动画(实际上是其中两个,但为了简单起见仅显示一个),它不断淡入和淡出标签。因此,当我以某些动画单元格消失然后向后滚动的方式滚动 tableview 时,这些单元格不再具有动画效果。
这是动画:
UIView.animateKeyframesWithDuration(
0.5,
delay: 0.0,
options: [.Repeat, .Autoreverse, .AllowUserInteraction],
animations: {
self.stateLabel.alpha = 0.5
}, completion: nil)
我在名为 setup() 的方法中启动此动画,该方法是我的自定义单元类(继承自 UITableViewCell)的实例方法。正如我所说,还有另一个动画表现相同,它会震动图像视图,所以我很肯定这与褪色动画无关。
我在出队后在cellForRowAtIndexPath方法中调用setup()方法。
我尝试的是在willDisplayCell方法中运行这个setup()方法,但结果是一样的(我当然不是在这个方法中出列单元格)。
我也尝试了断点,并执行了动画代码。只是,当单元格重新出现时,动画不会开始。那么问题来了,当单元格再次出现时,如何重新启动/继续动画?
【问题讨论】:
-
确保在运行此动画之前重置 alpha 值。您可以在
cellForRowAtIndexPath中进行操作。我的猜测是,一旦您显示一个单元格并滚动回该单元格,该值将保持不变,因此不会发生动画。 -
@Ayazmon 就是这样。如果您做出回答,我将非常乐意接受并支持它:)
-
很高兴它有帮助:) 我写了一个答案,基本上告诉了动画单元格的生命周期。
-
真棒问题我的问题得到了解决方案 真棒:)
标签: swift uitableview animation uiview uikit