【问题标题】:Multi-line UITableViewCell using UITableViewCellStyleValue2 style使用 UITableViewCellStyleValue2 样式的多行 UITableViewCell
【发布时间】:2009-12-11 15:20:47
【问题描述】:

我试图弄清楚如何复制 UITableViewCellStyleValue2 样式,以便详细文本可以是多行 - 如联系人应用程序中的“地址”单元格所示。与联系人应用程序一样,某些字段(如街道名称)是可选的;所以如果街道不是零,它会显示 3 行而不是 4 行。

我错过了一个技巧,还是我必须在 IB 中创建一个自定义单元格?如何确保文本和详细文本标签与其他 UITableViewCellStyleValue2 单元格对齐?

感谢任何提示。

【问题讨论】:

    标签: iphone uitableview uilabel


    【解决方案1】:

    又一轮搜索发现了这个:

    http://the-lost-beauty.blogspot.com/2009/11/multi-line-uitableviewcell-using.html

    很快试了一下,效果很好——只需要把字号调小一点。

    【讨论】:

    • 现在的一个问题是 UILineBreakModeWordWrap 已被贬值。现在你必须在 iOS 6 中使用 NSLineBreakByWordWrapping。
    【解决方案2】:

    在我看来,您必须创建一个自定义 UITableCell。确保文本行对齐的唯一方法是使边距/文本宽度值正确,这可以通过反复试验或使用诸如xScope 之类的测量工具来完成。

    【讨论】:

      【解决方案3】:

      为您的表格创建一个自定义单元格,并在其中放置一个 UILabel 和一个 UITextView。定位标签和文本视图,使其 x、y 位置与您在该表中使用的其他单元格匹配。您可以在文本视图的文本中插入“\n”,只要您希望出现换行符。您可以根据 textview 中的行数使用以下方式调整 textview 的高度:

      CGRect frame = yourTextView.frame; frame.size.height = yourTextView.contentSize.height; yourTextView.frame = frame; return frame.size.height + 20.0; // Pad the cell's height as necessary for your applicaion

      【讨论】:

      • 通常情况下,很难定义应该在哪里换行。
      【解决方案4】:

      我还遇到了textLabeldetailTextLabel 的位置不同的问题。解决方案:detailTextLabel 使用与 textLabel 相同的高度(例如 13)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-04-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-10-21
        • 1970-01-01
        相关资源
        最近更新 更多