我试图弄清楚如何复制 UITableViewCellStyleValue2 样式,以便详细文本可以是多行 - 如联系人应用程序中的“地址”单元格中所示。与联系人应用程序一样,某些字段(如街道名称)是可选的;所以如果街道不是零,它会显示 3 行而不是 4 行。
我错过了一个技巧,还是我必须在 IB 中创建一个自定义单元格?如何确保文本和详细文本标签与其他 UITableViewCellStyleValue2 单元格对齐?
感谢您的任何提示。
我试图弄清楚如何复制 UITableViewCellStyleValue2 样式,以便详细文本可以是多行 - 如联系人应用程序中的“地址”单元格中所示。与联系人应用程序一样,某些字段(如街道名称)是可选的;所以如果街道不是零,它会显示 3 行而不是 4 行。
我错过了一个技巧,还是我必须在 IB 中创建一个自定义单元格?如何确保文本和详细文本标签与其他 UITableViewCellStyleValue2 单元格对齐?
感谢您的任何提示。
另一轮搜索发现:
http://the-lost-beauty.blogspot.com/2009/11/multi-line-uitableviewcell-using.html
很快就试了一下,它可以工作——只需将字体大小调小一点。
在我看来,您必须创建一个自定义 UITableCell。确保文本对齐的唯一方法是使边距/文本宽度值正确,这可以通过反复试验或使用诸如xScope 之类的测量工具来完成。
为您的表格创建一个自定义单元格,并在其中放置一个 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
我还遇到了 thetextLabel
和 thedetailTextLabel
位置不同的问题。解决方案:detailTextLabel
使用与 textLabel 相同的高度(例如 13)