如何使用自动布局为多个UILabel填充UITableViewCell

时间:2015-06-12 08:17:39

标签: ios objective-c uitableview autolayout

我有一个UITableViewCell,其中包含一些UILabel,我希望此标签水平填充UITableViewCell的宽度,并且不会保留大空间而不是其他空间,这是一个例子:

|---------------------------------------------------------
|                                                        |
|***This is a uilabel***This is a uilabel***label***lb** |
|                                                        |
|---------------------------------------------------------

因此,对于UILabel宽度不同,我希望所有UILabel填充所有UITableViewCell修复字体大小(如果需要),*是间距,我如何通过自动实现此目的布局?

1 个答案:

答案 0 :(得分:5)

步骤1:设置约束

最左边的标签:在其超级视图中添加前沿约束和中心Y约束

中间标签:将水平间距和中心Y约束添加到上一个标签。

最右边的标签:将水平间距和中心Y约束添加到上一个标签加上一个后边缘约束到superview。

这些约束确保标签之间和左右两侧的间隙大小固定,并且它们都在其超视图中居中。由于没有宽度约束,布局系统将尝试调整它们的大小以适合其内容。 但这留下了歧义......

第2步:设置内容大小优先级。

上述限制仍然含糊不清 -

  1. 如果总文字内容而不是超级视图的宽度,哪个标签展开大于其内容?
  2. 如果总文字内容更多而不是超级视图的宽度,哪个标签合同缩小其内容以适应?
  3. 第一个问题的答案是具有最低水平内容拥抱优先级的标签。默认情况下,它们都具有相同的功能,因此请确保它们具有不同的水平内容,包含优先级。

    第二个问题的答案是具有最低水平内容压缩阻力优先级的标签。默认情况下,它们都具有相同的功能,因此请确保它们具有不同的水平内容压缩阻力优先级。

    第3步:确保文本缩小以适应。

    我们现在有一个明确的布局。但默认情况下,如果标签没有空间显示,标签将截断其内容。在标签上将自动收缩设置为最小字体比例最小字体大小,以确保它们调整字体大小以适合其内容而不是截断它。< / p>

相关问题