描述我的情况的最佳方式是使用图像。我所拥有的是包含多个UILabel
和UIImage
的视图。红色框是UILabel
,如果内容太大,则应该转到第二行。
从故事板开始,我有一个工作案例,当内容适合但问题是我不知道如何处理最后一个(红色框)应该转到第二行的情况。我正在使用autolayout
和cartography
。
如果有人能指出我正确的方向,我将非常感激。
答案 0 :(得分:1)
根据当前标签的位置,首先计算文本的宽度。
如果文字宽度超过当前标签的宽度,请从下面的链接中查看我的答案:
Auto Layout how to move the view2 from right to the bottom?
计算宽度:
func widthForView1(_ text:String, font:UIFont, height:CGFloat) -> CGFloat
{
let label:UILabel = UILabel(frame: CGRect(x: 0, y: 0, width: your_label_width, height: your_lable_height))
label.numberOfLines = 0
label.lineBreakMode = NSLineBreakMode.byWordWrapping
label.text = text
label.font = font
label.sizeToFit()
return label.frame.width
}
答案 1 :(得分:0)
使用标记View可以解决此问题。 TagListView是一个外部库。 当您将视图添加为taglistView的子类时,其高度会相应地自动增加。
将此内容添加到pod文件:pod'TagListView'
func addTags() {
let str1 = "Hi"
tagListView.addTag(str1)
let str2 = "Helloo"
tagListView.addTag(str2)
let str3 = "How Are u ? "
tagListView.addTag(str2)
tagListView.isUserInteractionEnabled = false
}
答案 2 :(得分:0)
您不能仅使用约束来执行此操作。要更改屏幕上元素的整个位置,您需要以编程方式执行此操作。