【问题标题】:Display multiple lines in a Table view's cell - IOS在表格视图单元格中显示多行 - IOS
【发布时间】:2014-12-21 15:44:36
【问题描述】:

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

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

【问题讨论】:

  • 错误信息会显示在任何一个 uilabels 中还是你会添加另一个?
  • 我正在尝试显示错误消息来代替 UILabel 之一。比如,Header UILabel1 UILabel2 如果出现错误,只会打印代替 UILabel1 的错误消息。 (Header 是为 JSON 请求传递的对象名称,而 UILabel1 和 UILabel2 是它的键值。)

标签: ios iphone uitableview uilabel message


【解决方案1】:

当我有动态单元格高度时,我会使用类似的东西

- (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];
}

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

      如果您必须将此多行消息显示到您当前在 UITableViewCell 中拥有的 UILabel 之一,则将属性“行数”设置为 0(零)并将“行模式”设置为 UILineBreakModeWordWrap,现在的高度为您有两个选项的单元格,即有约束或没有约束,这将使用 cellForRowAtIndexPath 方法完成。

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

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

        CGSize 大小 = [字符串 sizeWithAttributes: @{NSFontAttributeName: [UIFont systemFontOfSize:17.0f]}];

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多