尝试在标签上设置自动约束,在长文本

时间:2017-03-13 00:49:39

标签: ios swift autolayout nsautolayout pure-layout

我正在尝试显示包含缩略图和标题的行。

它适用于短标题字符串,但对于长字符串,它会中断。我宁愿它垂直扩展,而不是水平扩展。查看下面的屏幕截图,了解使用长字符串时会发生什么。我正在使用PureLayout来管理自动布局:

thumbnailView.autoSetDimensions(to:CGSize(width: 75, height: 75))
thumbnailView.autoPinEdge(toSuperviewEdge: .leading, withInset: kLabelHorizontalInsets)
thumbnailView.autoPinEdge(toSuperviewEdge: .top, withInset: kLabelVerticalInsets)
thumbnailView.autoPinEdge(toSuperviewEdge: .bottom, withInset: kLabelVerticalInsets, relation: .greaterThanOrEqual)

titleLabel.autoPinEdge(.leading, to: .trailing, of: thumbnailView, withOffset: kLabelHorizontalInsets, relation: .lessThanOrEqual)
titleLabel.autoPinEdge(toSuperviewEdge: .top, withInset: kLabelVerticalInsets)
titleLabel.autoPinEdge(toSuperviewEdge: .trailing, withInset: kLabelHorizontalInsets)
titleLabel.autoPinEdge(toSuperviewEdge: .bottom, withInset: kLabelVerticalInsets)

还设置了UITextLabel上的相应设置:

 titleLabel.lineBreakMode = .byWordWrapping
 titleLabel.numberOfLines = 0
 titleLabel.textAlignment = .left

任何建议都表示赞赏。谢谢 tableview screenshot

2 个答案:

答案 0 :(得分:1)

您不需要限制顶部和底部约束。 UILabel将自动调整contentHeight。您可以参考contentHuggingPriorityForAxis:contentCompressionResistancePriorityForAxis:。您可以修复标签的中心而不是底部和顶部。

答案 1 :(得分:0)

找到一种可能的解决方案:solution

原来UILabel的{​​{1}}属性和自动布局不能很好地发挥作用。