在表格视图的单元格中显示多行 - IOS

时间:2014-10-26 08:06:08

标签: ios iphone uitableview uilabel message

我想在表格的单元格视图中为我正在处理的IOS应用程序显示多行。确切地说,我有一个表视图,将使用从服务器返回的JSON数据填充,如果返回的状态是0或2(状态是为配置文件返回的JSON对象之一),则必须显示5-6行的错误消息。

表格的单元格视图可以自定义显示2个UILabel,显然这个单元格的高度足够小,可以显示2个标签。我发现了一个solution,但它实际上并没有解决问题。谁能提出不同的解决方案。如果可能的话,链接到一个例子将是一个很大的帮助。谢谢

3 个答案:

答案 0 :(得分:2)

您要搜索的内容称为“动态大小”单元格。有一个如何实现这一目标的教程:http://www.raywenderlich.com/73602/dynamic-table-view-cell-height-auto-layout

它会根据文本长度调整所有单元格的高度,如下例所示: enter image description here

答案 1 :(得分:0)

如果您必须将此多行消息显示给UITableViewCell中当前具有的UILabel之一,则设置属性" No of Lines"到0(零)并设置"线路模式"到UILineBreakModeWordWrap,现在对于单元格的高度你有两个选项,即带有约束或没有约束,这将使用cellForRowAtIndexPath方法完成。

1。if (error_message_shown) { return 200.0; else return 60.0;

  1. 有约束力 添加顶部,底部,左侧,右侧,宽度和高度约束,确保使用> =表示高度并使用以下方法计算分配给单元格的文本的高度

    CGSize size = [string sizeWithAttributes:                    @ {NSFontAttributeName:                      [UIFont systemFontOfSize:17.0f]}];

答案 2 :(得分:0)

当我有动态单元格高度时,我会使用

之类的东西
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
    static MyTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"my_cell_id"];
    NSDictionary *responseItem = [self itemFor:indexPath];
    return (CGFloat)[cell heightFor:responseItem];
}