相对于来自iphone中的webservice的内容,增加单元的大小

时间:2012-01-30 09:03:28

标签: iphone objective-c

这可能是一个简单的问题,但我希望通过正确的道路。

我从网络服务中获取一些内容并将其显示在表格视图中。

从那里获取的文本长度可能会有所不同。

有时它可能只有一个句子句子,有时候是段落等。

所以我的疑问是如何根据来自webservice的内容改变自定义单元格的高度。

希望得到你的帮助。

提前致谢。

2 个答案:

答案 0 :(得分:0)

在你的UITableViewDelegate中实现以下方法

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath

根据行返回适当的高度。

您可以使用NSString的方法-sizeWithFont:来获取您获得的文本的像素大小。

http://developer.apple.com/library/IOs/documentation/UIKit/Reference/NSString_UIKit_Additions/Reference/Reference.html#//apple_ref/occ/instm/NSString/sizeWithFont

答案 1 :(得分:0)

假设您将每个内容的文本存储在数组中。索引与表格单元格对齐。 这是您要使用的代码。

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
NSString *string = [array objectAtIndex:indexPath.row];

//300 is the width, you can change this to make it look right.
CGSize maximumLabelSize = CGSizeMake(300 ,9999);
CGSize expectedLabelSize = [string sizeWithFont:YOURLABEL.font 
                                    constrainedToSize:maximumLabelSize 
                                        lineBreakMode: UILineBreakModeWordWrap]; 

return expectedLabelSize.height;

}

几乎涵盖了基本内容。只要问你是否还有其他问题。阅读Leena的评论。它非常适合。