viewDidLayoutSubviews for Custom UITableViewCell



我想对自定义 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
}

最新更新