Ios 未从情节提要帧更新帧

Ios 未从情节提要帧更新帧,ios,iphone,frame,cgrect,Ios,Iphone,Frame,Cgrect,所以我想布置一个UITableView,我想让单元格计算它们自己的高度。我可以使用systemSizeFittingSize执行此操作,但这并不总是返回正确的高度,因为行仍然具有来自故事板(或xib)的帧 我想更新帧,使其与设备上的帧相同 我该怎么做?我尝试了setNeedsLayout和layoutIfNeeded,但我必须在层次结构中的最高视图上执行此操作,以实现所需的效果,因为每个视图似乎都使用其superview的框架 我正在设置tableViewDataSource并在我的viewco

所以我想布置一个
UITableView
,我想让单元格计算它们自己的高度。我可以使用
systemSizeFittingSize
执行此操作,但这并不总是返回正确的高度,因为行仍然具有来自故事板(或xib)的帧

我想更新帧,使其与设备上的帧相同

我该怎么做?我尝试了
setNeedsLayout
layoutIfNeeded
,但我必须在层次结构中的最高视图上执行此操作,以实现所需的效果,因为每个视图似乎都使用其superview的框架

我正在设置
tableViewDataSource
并在我的viewcontroller中的
viewDidLoad
中调用
reloadData

在调用
viewDidLoad
之前,是否有方法设置正确的帧


编辑:我想给我的
viewDidLoad
中的布局对象指定子视图的高度,这样它就可以发挥神奇的作用,提供一个漂亮的布局。现在,该对象只进行布局计算。我注意到
viewDidLoad
中我请求的高度(通过
view.frame.size.height
)与我的故事板中的高度相同,再次告诉我
viewDidLoad
中的帧尚未更新。。。有解决方法的人吗?

我认为
tableView:heightForRowAtIndexPath:
可能是您需要的:

:


但是只有在您知道之前的大小,然后您可以在
init

@Downvoter中计算它时,才能在
viewDidLoad
之前设置正确的帧,请注意解释一下?这就是我返回使用原型单元格计算的高度的地方,设置它的数据,然后我要求它自己布局,这样我就可以得到它的高度。这里的问题是,单元格的宽度不正确,因此高度计算不正确…@vrwim您确定这是单元格的宽度问题,而不是表视图的宽度问题吗?我从xib实例化了单元格,它仍然有一个框架。如果我想更新布局,它将采用tableview中的布局,这也是不正确的,但您提到的问题是,如果我理解正确,计算高度时单元格的宽度不正确。我现在要问的是,你是否确定表视图的宽度是正确的?我确定它是错误的,因为在
viewDidLoad
my viewcontroller中,以及其中的所有内容仍然具有来自情节提要的大小,因此我无法使用帧来计算单元格大小。