iOS:加载tableview

时间:2015-07-11 10:54:34

标签: ios swift layout frame tableviewcell

我有一个带有单元格的标准tableView。

在这些单元格中,我需要在滚动时更改框架位置。

我根据其在tableview中的位置做了更新框架的功能(我使用convertRect(_:toView:)) 滚动时,它工作正常,我在UIScrollViewDelegate函数scrollViewDidScroll(_)中调用此函数。

我的问题是在加载单元格时设置视图的初始位置。

为此,我调用我在tableView(_:willDisplayCellforRowAtIndexPath:)中执行的相同功能,以便在视图准备好显示时设置它。

当我在功能之后记录视图框时,它具有预期的值,但在屏幕上视图位于错误的位置,就像显示器没有刷新一样。

我知道在加载视图时更改框架可能会很棘手并导致这样的事情,但我尝试了所有我能想到并发现的内容,无论在哪个tableview / cell函数中我都试图更新视图&# 39; s框架,在我开始滚动之前它不会改变。

为了记录,我尝试了:

  • 主控制器tableView(_:willDisplayCellforRowAtIndexPath:)
  • 主控制器viewDidAppear()
  • cell layoutSubviews()
  • cell drawRect()

我也试过自动布局中的约束,但没有任何相关。

我确定我在加载单元格时错过了更新框架的正确位置,但我无法弄明白。

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

尝试在

中设置UITableViewCell子驱动程序的初始帧
  

的cellForRowAtIndexPath: