表格视图单元格中标签或文本视图的自动高度

时间:2010-06-11 12:22:46

标签: iphone uitableview

我在iPhone应用程序中遇到问题。

Application有一个带有自定义表视图单元格的表视图控制器。每个单元格都有一个标签(如果我需要使用文本视图等,请纠正我)。我正在通过Web服务调用动态获取文本,我不知道文本会有多长。

现在的问题是我想根据收到的文字调整表格视图的单元格高度。如何在表格视图单元格中增加Label或TextView高度,以便它可以包含所有文本,并实际上增加表格视图单元格高度。

有谁知道如何处理这种设计问题?

由于

2 个答案:

答案 0 :(得分:2)

您可以从下面的函数

获取传递的字符串的高度
-(float)getHeightByWidth:(NSString*)myString:(UIFont*)mySize:(int)myWidth {

    CGSize boundingSize = CGSizeMake(myWidth, CGFLOAT_MAX);
    CGSize requiredSize = [myString sizeWithFont:mySize constrainedToSize:boundingSize lineBreakMode:UILineBreakModeWordWrap];

    return requiredSize.height;

}

基于上述功能,您可以设置标签的高度以及将要使用的单元格。

答案 1 :(得分:0)

答案取决于您显示的信息的大小和复杂程度。

对于少量文本,您可以使用NSString UIKit Additions计算显示字符串的尺寸,然后在将单元格返回到tableview之前调整单元格的标签或其他控件的大小。这将让您微调每个单元格的显示。

对于大量文本,我建议尽可能详细查看。在表格中显示少量文本,然后选择表格打开另一个包含全文的视图。我认为大多数用户很难在tableview中阅读大量文本。