我想对自定义 TableViewCell 的子视图进行动画处理。若要执行此动画,单元格需要此子视图的宽度,该宽度由自动布局约束布局。
但是,当我在cellForRowAtIndex函数(mycell.animate()
)中使用动画函数时,宽度是0
的,因为子视图尚未布局,动画将无法工作。
在常规视图中,我会使用 viewDidLayoutSubviews()
,因为这样视图就被布置好了,我可以获取宽度并执行动画。但是,自定义UITableViewCell的等效函数是什么?
我尝试了 TableView 的willDisplay
委托功能,但是当我打印出单元格子视图的宽度时,它仍然显示0
......
正确的位置在layoutSubviews
里面:
class MyCell : UITableViewCell {
override func layoutSubviews() {
super.layoutSubviews()
// do your thing
}
}
如果您在tableViewCell的绘制函数中对视图进行动画处理,它将起作用
override func draw(_ rect: CGRect) {
super.draw(rect)
//Your code here
}