gpt4 book ai didi

ios - UIStackView 中的 UILabel

转载 作者:行者123 更新时间:2023-11-28 11:33:44 25 4
gpt4 key购买 nike

当我将单个 UILabel 放入 UIStackView 堆栈时,一切都按预期正常工作。但是我需要的是实际上在 UILabel 下放置一个 UIView 并保持 UILabel 的自身大小。我只是想知道,有没有一种方法可以在不使用 UITableView 和自定大小的单元格的情况下实现这一目标?我使用了这段代码

let textLabel = UILabel()
textLabel.text = "zaciatok TEXTTEXT TEXT TEXT TEXTTEXT TEXT TEXT TEXTTEXT TEXT TEXT TEXTTEXT TEXT TEXT TEXTTEXT TEXT TEXT TEXTTEXT TEXT TEXT TEXTTEXT TEXT TEXT TEXTTEXT TEXT koniec"
textLabel.numberOfLines = 0
textLabel.sizeToFit()
textLabel.backgroundColor = .yellow
let testItemView = UIView()
testItemView.backgroundColor = .green
testItemView.addSubview(textLabel)
mainStackView.addArrangedSubview(testItemView)

但它只显示一行文本,这不是我需要的东西。

我已经用代码尝试了新的建议

mainStackView.distribution = .fill
let textLabel = UILabel()
textLabel.text = "zaciatok TEXTTEXT TEXT TEXT TEXTTEXT TEXT TEXT TEXTTEXT TEXT TEXT TEXTTEXT TEXT TEXT TEXTTEXT TEXT TEXT TEXTTEXT TEXT TEXT TEXTTEXT TEXT TEXT TEXTTEXT TEXT koniec"
textLabel.numberOfLines = 0
textLabel.sizeToFit()
textLabel.backgroundColor = .yellow
let testItemView = UIView()

testItemView.backgroundColor = .green
testItemView.addSubview(textLabel)

mainStackView.addArrangedSubview(testItemView)
testItemView.translatesAutoresizingMaskIntoConstraints = false
testItemView.heightAnchor.constraint(equalToConstant: 50).isActive = true

我明白了

enter image description here

当我删除 sizeToFit 时,根本没有标签我对堆栈 View 的约束:enter image description here

最佳答案

试试这个

class ViewController: UIViewController {

override func viewDidLoad() {
super.viewDidLoad()

view.backgroundColor = .white

let mainStackView = UIStackView()
mainStackView.axis = .vertical
mainStackView.spacing = 3
mainStackView.translatesAutoresizingMaskIntoConstraints = false
view.addSubview(mainStackView)

mainStackView.topAnchor.constraint(equalTo: view.topAnchor, constant: 100).isActive = true
view.addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "H:|-(10)-[mainStackView]-(10)-|", options: [], metrics: nil, views: ["mainStackView":mainStackView]))

let testItemView = UIView()
testItemView.layer.maskedCorners = [.layerMinXMinYCorner,.layerMinXMaxYCorner,.layerMaxXMinYCorner]
testItemView.layer.cornerRadius = 15.0
testItemView.layer.masksToBounds = true
testItemView.backgroundColor = .green
testItemView.translatesAutoresizingMaskIntoConstraints = false

let textLabel = UILabel()
textLabel.translatesAutoresizingMaskIntoConstraints = false
textLabel.text = "zaciatok TEXTTEXT TEXT TEXT TEXTTEXT TEXT TEXT TEXTTEXT TEXT TEXT TEXTTEXT TEXT TEXT TEXTTEXT TEXT TEXT TEXTTEXT TEXT TEXT TEXTTEXT TEXT TEXT TEXTTEXT TEXT koniec"
textLabel.numberOfLines = 0
textLabel.lineBreakMode = .byWordWrapping
textLabel.backgroundColor = .yellow
testItemView.addSubview(textLabel)

testItemView.addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "V:|-(5)-[textLabel(>=30)]-(5)-|", options: [], metrics: nil, views: ["textLabel":textLabel]))
testItemView.addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "H:|-(5)-[textLabel]-(5)-|", options: [], metrics: nil, views: ["textLabel":textLabel]))

mainStackView.addArrangedSubview(testItemView)
}
}

enter image description here

关于ios - UIStackView 中的 UILabel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56173451/

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