Objective c 动态可变单元高度

Objective c 动态可变单元高度,objective-c,uitableview,Objective C,Uitableview,我有一个带有自定义单元格的UITableView。我需要显示标题,地址,邮政编码,电话,电子邮件,网站和描述在一个手机。所有这些信息都来自Web服务器。我能够显示Web服务器中的内容。但是,如果任何内容是空的,则该内容应该在哪里存在一个间隙,如果描述太长,则我无法显示所有内容。如何根据服务器上的内容更改单元格高度?请帮忙 例如:内容打印如下: 标题 地址 拉链 电话 但是,如果地址为零,则看起来像: 头衔 拉链 电话 我有tableview:heightForRowAtIndexPath方法,但

我有一个带有自定义单元格的
UITableView
。我需要显示标题,地址,邮政编码,电话,电子邮件,网站和描述在一个手机。所有这些信息都来自Web服务器。我能够显示Web服务器中的内容。但是,如果任何内容是空的,则该内容应该在哪里存在一个间隙,如果描述太长,则我无法显示所有内容。如何根据服务器上的内容更改单元格高度?请帮忙

例如:内容打印如下: 标题 地址 拉链 电话

但是,如果地址为零,则看起来像: 头衔

拉链 电话

我有
tableview:heightForRowAtIndexPath
方法,但无法根据单元格内容更新单元格高度。
很抱歉问题格式不正确

您可以使用此委托方法设置每个单元格的高度

    - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
        {
           NSString *text = [yourArray objectAtIndex:indexPath.row];// here just use your data array which you get from server

           CGSize mTempSize = [text sizeWithFont:[UIFont fontWithName:fontName size:fontSize] constrainedToSize:constrainedToSize lineBreakMode:UILineBreakModeWordWrap];
           return mTempSize.height ;
       }

我希望这能帮助您……

首先,您需要根据标签的文本长度设置标签的大小。有许多方法可用于获取字符串的大小。看

如果您有单行标签,您可以使用最简单的标签
–sizeWithFont:
。但如果您有多行标签,则应使用
–sizeWithFont:constrainedToSize:
。此方法允许您指定标签的最大大小

其次,您必须使用
tableView:heightforrowatinexpath:


希望这对您有所帮助。

您的tableView:heightForRowAtIndexPath:调用需要考虑丢失的数据,以及如何重新布置单元格的所有其余部分以缩小它留下的间隙。因此,您的实际通话在这里将非常重要


不过,新的facebook应用程序在这里做了一个巧妙的技巧,让你不用每次都打电话。它在下载内容之后,在向用户呈现内容之前,计算背景中的所有单元格高度,并将其与数据本身一起存储在数据存储中。这意味着实际的表格单元渲染非常快速和流畅,因为您不需要在每次应用程序运行/单元重用时重新布局/重新计算单元高度和布局。

单元大小调整可能会变得非常复杂,因此我建议您只需使用表视图框架,如“Sense TableView”,所有单元格都会自动调整大小以适应内容。我相信他们现在也有了一个免费版本。

@Android\u Newbie您还可以为每个具有浮点值的单元格设置单元格静态高度