所以我想布置UITableView
,我希望细胞计算自己的身高。我可以使用systemSizeFittingSize
执行此操作,但这并不总是返回正确的高度,因为行仍然具有来自故事板(或xib)的框架。
我想更新帧,以便它们是设备上的内容。
我该怎么做?我尝试了setNeedsLayout
和layoutIfNeeded
,但是我必须在层次结构中的最高视图上执行此操作才能获得所需的效果,因为每个视图似乎都使用了超视图的框架。
我在我的viewcontroller中设置tableViewDataSource
并在reloadData
中调用viewDidLoad
。
有没有办法在调用viewDidLoad
之前设置正确的帧?
编辑:我想将子视图的高度赋予我viewDidLoad
中的布局对象,以便它可以发挥其魔力,提供一个漂亮的布局。现在这个对象只进行布局计算。我注意到我在view.frame.size.height
中请求的高度(通过viewDidLoad
)与我的故事板中的高度相同,再次告诉我在viewDidLoad
中框架尚未更新...有解决方法的人吗?
答案 0 :(得分:-1)
我认为tableView:heightForRowAtIndexPath:
可能是您需要的东西:
但只有在您知道之前的尺寸后才可以在viewDidLoad
之前设置正确的帧,然后您可以在init
中计算它。