gpt4 book ai didi

swift - 以编程方式固定宽度,动态高度 UILabel?

转载 作者:可可西里 更新时间:2023-10-31 23:13:52 25 4
gpt4 key购买 nike

我有一个文本更改的 UILabel。它有一个背景颜色,我希望它的宽度始终相同,但如果需要它的高度可以改变以适合文本。有人知道我该怎么做吗?

这是我尝试过的:

    label.numberOfLines = 0
label.center = self.view.center
label.textAlignment = .center
label.widthAnchor.constraint(equalToConstant: 50.0).isActive = true
label.sizeToFit()

最佳答案

您可能应该阅读一下 autolayout并学习如何用它构建你的观点,然而,从我能收集到的信息来看,你希望标签:

  • 位于屏幕中央
  • 有一个固定的宽度
  • 有背景色
  • 垂直展开以适应其内容

let label = UILabel()
label.translatesAutoresizingMaskIntoConstraints = false
label.backgroundColor = UIColor.greenColor()
label.numberOfLines = 0
label.textAlignment = .Center
label.text = "This is\nsome multiline\nlabel\nwith a background\n colour"
self.view.addSubview(label)

let width = NSLayoutConstraint(item: label, attribute: .Width, relatedBy: .Equal, toItem: nil, attribute: .NotAnAttribute, multiplier: 1, constant: 50)
let centerX = NSLayoutConstraint(item: label, attribute: .CenterX, relatedBy: .Equal, toItem: self.view, attribute: .CenterX, multiplier: 1, constant: 0)
let centerY = NSLayoutConstraint(item: label, attribute: .CenterY, relatedBy: .Equal, toItem: self.view, attribute: .CenterY, multiplier: 1, constant: 0)

self.view.addConstraints([width, centerX, centerY])

上面的代码使用自动布局生成了一个绿色标签,有一个screenshot here。 .

使用 numberOfLines = 0 确保 View 知道标签可以扩展以适应它的内容。

布局约束应该是不言自明的,如果你阅读它们,我们将标签的宽度设置为 50 然后我们将中心 X 和 Y 约束设置为等于我们添加的 View 标记为。

这就是你想要的吗? - 如果不是,您可以更新您的问题以包含您正在尝试制作的模型图像。

关于swift - 以编程方式固定宽度,动态高度 UILabel?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40738796/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com