custom UITableViewCell

时间:2017-10-24 08:25:34

标签: swift animation uikit tableview

我想为自定义TableViewCell的子视图设置动画。要执行此动画,单元格需要此子视图的宽度,该宽度由自动布局约束布局。

但是,当我在cellForRowAtIndex函数(mycell.animate())中使用动画函数时,宽度为0,因为子视图尚未布局且动画不起作用。

在常规视图中,我会使用viewDidLayoutSubviews(),因为然后布局了视图,我可以获得宽度并执行动画。但是,自定义UITableViewCell的等效功能是什么?

我尝试了TableView的willDisplay委托功能,但是当我打印出单元格子视图的宽度时,它仍然显示0 ...

2 个答案:

答案 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
}