Iphone 需要访问表格中的单元格视图:heightForRowAtIndexPath:

Iphone 需要访问表格中的单元格视图:heightForRowAtIndexPath:,iphone,uitableview,performance,Iphone,Uitableview,Performance,我需要从tableView:heightforrowatinexpath: 因为我想使用自定义单元格中的数据进行高度计算。 我找到的获取单元格的唯一方法是调用tableView:cellforrowatinexpath: 问题是调用tableView:cellforrowatinexpath:实际上是在创建单元格,而不是什么都不做。当同一单元需要用于绘图时,将再次创建该单元。因此,对于同一索引,单元格将创建两次 所以我想知道有没有更有效的方法来做这件事。 谢谢您的帮助。您无法使用此方法访问单元格

我需要从
tableView:heightforrowatinexpath:
因为我想使用自定义单元格中的数据进行高度计算。 我找到的获取单元格的唯一方法是调用
tableView:cellforrowatinexpath:

问题是调用
tableView:cellforrowatinexpath:
实际上是在创建单元格,而不是什么都不做。当同一单元需要用于绘图时,将再次创建该单元。因此,对于同一索引,单元格将创建两次

所以我想知道有没有更有效的方法来做这件事。
谢谢您的帮助。

您无法使用此方法访问单元格,因为它尚不存在
tableView:heightforrowatinexpath:
tableView:cellforrowatinexpath:
中创建单元格之前被调用


但这并不重要,因为您不应该在单元对象中保存模型信息。单元格只是视图,您应该始终保存在模型中构建单元格所需的所有数据。

通常,您可以根据数据和索引路径选择从
表格视图:cellForRowAtIndexPath:
返回哪个单元格。

因此,您可以使用相同的数据和索引路径来确定在
tableView:heightForRowAtIndexPath:

中返回哪个单元格高度,这是一个高尚的想法,但如果需要使用layoutSubviews以正确的格式布局单元格,则此方法行不通。在这种情况下,可以根据生成的单元格内容动态调整单元格的高度。如果您知道单元格的宽度,这仍然可以解决,但是如果这也是可变的呢?我遇到了这个问题,但我还没有找到解决办法。有人吗?没有办法解决这个问题:使用UITableView,在创建单元格之前,您需要知道单元格高度。我认为这不是真的。我注意到tableView:heightforrowatinexpath:在布局子视图之前和之后都会被调用。我遇到的问题是,当我第一次尝试获取单元格高度时发生碰撞;tableView:cellForRowAtIndexPath:导致崩溃。我试着把消息放在一个try/catch块中,但是没有任何效果。好吧,我错了。tableView:HeightForRowatineXpath在尝试调用tableView:CellForRowatineXpath:中的tableView:CellForRowatineXpath:之前或之后崩溃。我可以在第一次跑步时计算行高;我想知道在屏幕上绘制表格后是否会有通知,以便我可以重新加载具有正确高度的单元格?我确实找到了一个解决方案,并且它与system一起工作:UITableView有一个名为“bounds”的属性,它的宽度确实正确。这和LayoutSubview允许我获得单元格的适当高度,并且在设备方向发生变化时可以正常工作。