我有这个动画 block ,但是cell
背景颜色立即clear
:
cell.mylabel.backgroundColor = .orange
UIView.animate(withDuration: 3.0, delay:3, animations: {
cell.mylabel.backgroundColor = .clear
})
重点是我在 cellForRowAt
我尝试将动画移动到我的自定义单元格,但再次没有成功:
override func didMoveToWindow() {
UIView.animate(withDuration: 3.0, delay:3, animations: {
self.mylabel.backgroundColor = .clear
})
}
最佳答案
The point is I am running this in
cellForRowAt
这还为时过早,因为单元格可能尚未位于屏幕 View 层次结构中。您只能对屏幕 View 层次结构中的 View 进行动画处理。您需要找到一种方法在将单元格添加为 TableView 的 subview 后添加动画。
我会创建一个自定义UITableViewCell
子类。在子类中,我将覆盖 didMoveToWindow
将动画添加到 self
.
或者,也可以覆盖 viewDidLayoutSubviews
在 TableView Controller (如果有的话)中,并在该方法中添加动画。
关于ios - 动画立即完成,无论持续时间和延迟如何,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39462683/