Ios 如何计算具有右/左细节样式的tableviewcell的高度?

Ios 如何计算具有右/左细节样式的tableviewcell的高度?,ios,uitableview,uilabel,Ios,Uitableview,Uilabel,我有一个UITableView,带有右/左细节样式的原型单元格。两个(多行)标签的文本长度差别很大 这意味着标签的宽度将根据文本发生变化(即使在同一节中) 从更一般的意义上讲,此问题适用于包含至少两个标签的所有单元格,这些标签水平对齐 在没有给定约束标签宽度的情况下,是否可以计算生成的单元格高度(在heightforrowatinexpath中) 我想把文本排成尽可能少的行=最小化单元格高度(见图) 欢迎提出任何建议/解决方案 行的高度是在tableview代理的方法中计算的-tablevie

我有一个
UITableView
,带有右/左细节样式的原型单元格。两个(多行)标签的文本长度差别很大

这意味着标签的宽度将根据文本发生变化(即使在同一节中)

从更一般的意义上讲,此问题适用于包含至少两个标签的所有单元格,这些标签水平对齐

在没有给定约束标签宽度的情况下,是否可以计算生成的单元格高度(在
heightforrowatinexpath
中)

我想把文本排成尽可能少的行=最小化单元格高度(见图)


欢迎提出任何建议/解决方案

行的高度是在tableview代理的方法中计算的
-tableview:HeightForRow索引路径:


这是您必须计算标签可能的宽度和高度的地方。可以使用
[@“looong TEXT”sizeWithFont:defaultFont]执行此操作然后做适当的数学运算并返回单元格所需的高度。

进行向上投票。请添加图片。)谢谢。图片出来了。好的,这就是我正在做的。挑战在于textLabel和detailTextLabel的宽度是相互影响的:在我的示例(第三个单元格)中,一个单元格可以压缩成一行,但另一个标签的行数大于等于3行。通常,此类问题的解决方案是迭代:改变两个标签宽度,计算得到的标签高度,重复这些步骤,直到两个标签高度在相同(最小化)值上。我想知道这是否是一种可行的方法(性能!?!?),或者是否有一个模板/演示代码来实现这一目标。我相信新的自动布局功能用于此。如果是这种情况(iOS6及以上),您不必担心计算。它是根据您提供的约束(标签的最小宽度、标签之间的最小距离等)为您完成的。我正在使用autolayout,它会调整标签的大小。但据我所知,从测试中可以看出,在计算出细胞的大小a之后,细胞的大小会发生变化。这反过来意味着,在
tableView:heightforrowatinexpath
中进行计算时,我没有关于最终标签大小/宽度的任何信息。那么如何解决这个问题呢?我想知道我是唯一一个试图解决这个问题的人。在我看来,这似乎是一项非常常见的任务……如果我使用
sizeWithFont:
而不是
sizeWithFont:constrainedToSize:lineBreakMode:
所有单元格高度的计算都像标签是单线的,无论文本有多长/有多少行。猜测constrainedToSize没有多大意义,因为在大多数情况下,猜测与标签的最终宽度不匹配,因此计算的单元格高度可能是错误的。。。