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