最好的方式来描述我的情况是用图像。我所拥有的是一个包含多个UILabel和UIImage的视图。红色框是一个UILabel,如果内容太大,它应该转到第二行。
从故事板,我有一个工作的情况,当内容适合,但问题是,我不知道如何处理的情况下,最后一个(红色框)应该转到第二行。我正在使用autolayout和cartography。
如果有人能把我引向正确的方向,我将非常感激。


发布于 2017-02-21 12:52:57
首先,根据当前标签的位置计算文本的宽度。
如果文本宽度大于当前标签的宽度,那么从下面的链接中看到我的答案:
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
}发布于 2017-02-21 12:35:08
使用标签视图可以解决这个问题。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
}发布于 2017-02-21 12:39:17
您不能只使用约束来完成这一任务。若要更改元素在屏幕上的整个位置,需要以编程方式进行。
https://stackoverflow.com/questions/42367134
复制相似问题