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

标签 ios objective-c uitableview autolayout

我有一个包含一些UILabelUITableViewCell,我希望这个标签水平填充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 步:设置内容大小优先级。

上述限制仍然不明确 -

  1. 如果总文本内容小于 super View 的宽度,哪个标签将扩展大于其内容?
  2. 如果总文本内容大于 super View 的宽度,哪个标签将收缩缩小其内容以适应?

第一个问题的答案是水平内容拥抱优先级最低的标签。。默认情况下,它们都具有相同的内容,因此请确保它们具有不同的水平内容拥抱优先级。

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

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

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

关于ios - 如何使用自动布局用多个 UILabel 填充 UITableViewCell,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30798445/

相关文章:

ios - 为应用程序添加试用期。我应该在 Swift (iOS) 中使用 Timer 还是 DispatchQueue?

objective-c - NSMutableArray 和副本

ios - 使用 AFNetworking 在 objective-c 中的模型对象内部获取远程数据

ios - 选择和取消选择 UITableViewCells - Swift

iOS 远程通知处理应用程序事件案例

ios - 如何在 AppRTC iOS 示例中将音频重定向到扬声器?

iphone - 如何在 iOS 上构建和安装 yajl-objc

ios - 上传图片时 Firebase for iOS 错误 : object does not exist

iphone - 根据内容更改单个 UITableViewCell 的外观

ios - 为什么我的 UITableViewCell 子类中没有调用 layoutSubViews?