直到观点也出现表格视图单元格的子视图的框架变化不会发生(Frame change of table

2019-10-23 06:14发布

我想换一个UITableViewCell的子视图时,它是在被安装cellForRowAtIndexPath用下面的代码:

cellSubView.center = CGPointZero

打印出帧的坐标显示,该帧成功更新,但认为仍显示在在界面生成器给出的位置。

重写viewDidAppear用下面的代码功能将解决这个问题:

override func viewDidAppear(animated: Bool) {
    super.viewDidAppear(animated)
    self.tableView.reloadData()
}

但是,这将导致闪烁:表视图,当我改变细胞的子视图的位置之一已经没有出现。

这怎么可能改变帧之前的观点确实出现?

Answer 1:

如果您使用的autoLayout检查它是否是自动创建的约束。 如果是,那么你可以改变这些制约因素的常数代替。 如果你不使用的autoLayout,叫layoutIfNeeded,看看有没有改变任何东西。 我敢打赌,虽然是对的autoLayout自动创建的约束。



文章来源: Frame change of table view cell's subview won't take place until view did appear