2015-08-19 108 views
1

在我的UITableViewCellUITableViewCellStyleSubtitle我想填充完整的最大宽度detailTextLabel;一个短文本在左边(左对齐)和另一个在最右边的短文本(右对齐)。这两篇文章将在他们之间留下足够的空间。我发现this但这似乎并不奏效;它只是在左侧和右侧部分之间添加一个固定的空间。左对齐和右对齐文本在UITableViewCell的detailTextLabel

如果detailTextLabel的固定宽度扩展了整个可用的单元格空间,则不会那么困难:例如,可以计算两个字符串的宽度并使用NSKernAttributeName填充剩余空间。但不幸的是,detailTextLabel针对当前内容进行了动态调整。

有没有人想出一个优雅的解决方案来做到这一点? (除了小步骤使文字变得更长和更长,直到它达到detailTextLabel的全部潜在宽度并由于...而回退一点。)

+2

你不能继承你的细胞并将detailTextLabel分成两部分吗?然后,您可以指定所需的任何宽度以及它们之间的任何所需空间。你也可以将它们嵌入到UIView中,使它们的组合宽度始终相同 –

+0

@AndriyGordiychuk我想到了子类化,但是因为我想要有标准的iOS外观,我必须手动复制包括字体和颜色的完整布局。其他方法是添加一个'UILabel'子视图到单元格中,但是我又不得不复制。我希望有一个更简单的方法。 –

回答

2

这对我有效。试试这个:

cell.detailTextLabel!.lineBreakMode = NSLineBreakMode.ByWordWrapping; 
cell.detailTextLabel!.numberOfLines = 0; 

如果你想在tableView中设置左视图和右视图。

选择您的tableView并转到属性检查器并设置原型单元为1,显示在下面的截图:

enter image description here

选择您的tableView细胞去属性检查器,如图所示做的设置在下面的屏幕截图:

enter image description here

选择合适的细节后,将细胞的tableview将包括如下截图:

enter image description here

文本设置“cell.textLabel!的.text”是左视图(标题) ,并在设置文本“cell.detailTextLabel!的.text”是右视图(详细信息)

希望这可能会有所帮助。

+0

但你是如何设置左右文本的? –

+0

我已经更新了我在tableView中左右视图的答案。 – Karlos

+0

感谢您的努力,但不幸的是不工作。原因有三:1.我已经使用'textLabel' 2.我没有使用storyboard和XIB 3.正如我所说的,我不想使用自定义单元,而是使用“UITableViewCellStyleSubtitle”。 –