簡體   English   中英

如何將子視圖添加到我的 stackView? 我試試看,但我看不到它們

[英]How can l add subviews to my stackView? I try, but l can't see them in my view

我創建了 class:UIView,其中我創建了 label、textField 和 stackView。 我想將它們添加到我的 stackView 中,但我不知道問題出在哪里。

class View: UIView {

let stackView: UIStackView = {
    let sv = UIStackView()
    sv.axis = .vertical
    sv.distribution = .fillEqually
    sv.spacing = 10
    sv.translatesAutoresizingMaskIntoConstraints = false
    return sv
}()

let errorCodeLabel: UILabel = {
    let lbl = UILabel()
    lbl.text = "Error"
    -------- (code)
    lbl.translatesAutoresizingMaskIntoConstraints = false
    return lbl
}()

let textField: UITextField = {
    let tf = UITextField()
    -------- (code)
    tf.translatesAutoresizingMaskIntoConstraints = false
    return tf
}()

init() {
    super.init(frame: .zero)
    setUpStackView()
}

required init?(coder aDecoder: NSCoder) {
    fatalError("init(coder:) has not been implemented")
}

func setUpStackView() {
    stackView.translatesAutoresizingMaskIntoConstraints = false
    stackView.addArrangedSubview(errorCodeLabel)
    stackView.addArrangedSubview(textField)
}

在此 l go 到我的 viewController 之后,使這個常量:

let tField = View()

並為其添加一些約束。

但是當我運行我的模擬器時,我什么也沒看到。 請幫忙!

您需要將 stackView 添加為視圖的子視圖。 在初始化中做addSubview(stackView) 此外,您需要將 stackView 中的約束添加到父視圖。

作為一個建議,我會讓你的 class 成為 UIStackView 的子類,因為無論如何你都不會直接向視圖添加多個元素。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM