Ios Xcode-Swift-ui文本标签高度扩展

Ios Xcode-Swift-ui文本标签高度扩展,ios,xcode,swift,uilabel,sizetofit,Ios,Xcode,Swift,Uilabel,Sizetofit,我想使UILabel的高度根据其文本展开 以下是选中标签后视图控制器的外观: 下面是代码(我已经尝试了很多类似的事情,但这就是我现在拥有的): 而且,正如您在这里看到的,它没有按预期工作: 不要使用框架,请使用自动布局。向标签添加顶部、前导和尾随约束(我建议在情节提要中这样做)。只要行等于0(您这样做),高度将自动调整。如果要在代码中添加约束,您的viewDidLoad将如下所示: override func viewDidLoad() { super.viewDidLoad()

我想使UILabel的高度根据其文本展开

以下是选中标签后视图控制器的外观:

下面是代码(我已经尝试了很多类似的事情,但这就是我现在拥有的):

而且,正如您在这里看到的,它没有按预期工作:


不要使用框架,请使用自动布局。向标签添加顶部、前导和尾随约束(我建议在情节提要中这样做)。只要
等于0(您这样做),高度将自动调整。如果要在代码中添加约束,您的
viewDidLoad
将如下所示:

override func viewDidLoad() {
    super.viewDidLoad()
    label.text = "This is a really\nlong string"
    label.setTranslatesAutoresizingMaskIntoConstraints(false)
    view.addSubview(label)
    let views = ["label": label]
    view.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("H:|-[label]-|", options: nil, metrics: nil, views: views))
    view.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("V:|-[label]", options: nil, metrics: nil, views: views))
}

请尝试不将\n放入字符串,然后查看它是否会自动换行。请检查此项
override func viewDidLoad() {
    super.viewDidLoad()
    label.text = "This is a really\nlong string"
    label.setTranslatesAutoresizingMaskIntoConstraints(false)
    view.addSubview(label)
    let views = ["label": label]
    view.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("H:|-[label]-|", options: nil, metrics: nil, views: views))
    view.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("V:|-[label]", options: nil, metrics: nil, views: views))
}