【问题标题】:How to make text in a UITableViewCell wordwrap?如何在 UITableViewCell 自动换行中制作文本?
【发布时间】:2011-02-23 18:24:27
【问题描述】:

我有一个包含几个部分的分组 UITableView。某些单元格中的文本可能会变得很长,我想知道如何使文本自动换行?

【问题讨论】:

    标签: iphone objective-c cocoa-touch xcode uitableview


    【解决方案1】:

    例如

    textLabel.numberOfLines = 0;
    

    如果您愿意,可以将其设置为固定的行数。设置 lineBreakMode 可能是个好主意,您可能需要实现:

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

    使用:

    NSString sizeWithFont:constrainedToSize:
    

    【讨论】:

      【解决方案2】:

      您将指定文本将使用的行数。 将其设置为零将自动换行。

      cell.textLabel.numberOfLines=0; // line wrap
      

      【讨论】:

        【解决方案3】:

        在您的标签上设置 numberOfLines > 1 并设置适当的 lineBreakMode。您可能需要修改标签的框架以获得足够的空间。您可以在表视图委托的 tableView:willDisplayCell:forRowAtIndexPath: 中执行此操作。

        【讨论】:

          【解决方案4】:

          看起来像这个问题Custom Cell Height,对吧?我真的不明白自动换行的作用,但我假设您想根据文本长度更改单元格大小,对吗?所以大家可以看看上面的问答

          【讨论】:

          • 将单元格高度设置得更大不会使文本适合。它仍然向截断的文本显示“...”。
          • “单元格中有一个标签,其文本是 NSString 对象,字符串的长度可能是可变的,因此我无法在 UITableViews 中为单元格设置恒定高度:heightForCellAtIndex 方法。” (从问题中复制),将它放入一些 UILabel 并重试如何?
          • 如果我在单元格上设置标签属性,我可以让它自动换行。如果标签的边框超过了单元格的大小,那么我需要定义一个自定义的单元格高度。我想这两项更改都需要进行:)
          猜你喜欢
          • 2012-11-10
          • 1970-01-01
          • 2011-06-05
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-09-15
          • 2010-11-01
          • 2011-04-20
          相关资源
          最近更新 更多