我有一个包含一些UILabel
的UITableViewCell
,我希望这个标签水平填充UITableViewCell
的宽度,但事实并非如此保持大空间而不是其他,这是一个例子:
|---------------------------------------------------------
| |
|***This is a uilabel***This is a uilabel***label***lb** |
| |
|---------------------------------------------------------
因此,对于不同的 UILabel
宽度,我希望所有 UILabel
填充所有 UITableViewCell
如果需要固定字体大小,* 是间距,我如何通过自动布局实现这一点?
最佳答案
第 1 步:设置约束
最左边的标签:向其 super View 添加前缘约束和中心 Y 约束
中间标签:为上一个标签添加水平间距和中心 Y 约束。
最右边的标签:向前一个标签添加水平间距和中心 Y 约束加上到 super View 的后缘约束。
这些约束确保标签之间以及左侧和右侧的间隙大小固定,并且它们都在其 super View 中居中。由于没有宽度限制,布局系统将尝试调整它们的大小以适合其内容。 但这留下了歧义......
第 2 步:设置内容大小优先级。
上述限制仍然不明确 -
- 如果总文本内容小于 super View 的宽度,哪个标签将扩展大于其内容?
- 如果总文本内容大于 super View 的宽度,哪个标签将收缩缩小其内容以适应?
第一个问题的答案是水平内容拥抱优先级最低的标签。。默认情况下,它们都具有相同的内容,因此请确保它们具有不同的水平内容拥抱优先级。
第二个问题的答案是具有最低水平内容抗压缩优先级的标签。默认情况下,它们都具有相同的,因此请确保它们具有不同的水平内容压缩阻力优先级。
第 3 步:确保文本缩小以适合。
我们现在有了一个明确的布局。但默认情况下,如果标签没有空间显示内容,则会截断其内容。在标签上将自动收缩设置为最小字体比例或最小字体大小,以确保它们调整字体大小以适合其内容,而不是截断它。
关于ios - 如何使用自动布局用多个 UILabel 填充 UITableViewCell,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30798445/