我有这个动画块,但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
})
}
答案 0 :(得分:2)
重点是我在
中运行此功能cellForRowAt
现在还为时过早,因为单元格可能尚未出现在屏幕视图层次结构中。您只能为屏幕视图层次结构中的视图设置动画。在将单元格添加为表视图的子视图后,您需要找到一种添加动画的方法。
我会创建一个自定义UITableViewCell
子类。在子类中,我将覆盖didMoveToWindow
以将动画添加到self
。
或者,它可能会覆盖表视图控制器中的viewDidLayoutSubviews
(如果有的话),并在该方法中添加动画。
答案 1 :(得分:1)
试试这个,
cell.mylabel.layer.backgroundColor = UIColor.redColor().CGColor
UIView.animate(withDuration: 3.0, delay:3, animations: {
cell.mylabel.layer.backgroundColor = UIColor.clearColor().CGColor
})