【问题标题】:How can l add subviews to my stackView? I try, but l can't see them in my view如何将子视图添加到我的 stackView?我试试看,但我看不到它们
【发布时间】:2020-12-18 08:12:17
【问题描述】:

我创建了类:UIView,我在其中创建了一个标签、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)
}

之后我去我的viewController,使这个常量:

let tField = View()

并为其添加一些约束。

但是当我运行我的模拟器时,我什么也看不到。请帮忙!

【问题讨论】:

  • 你在哪里添加你的堆栈视图到你的视图中?你的限制在哪里?

标签: swift view subview stackview


【解决方案1】:

您需要将 stackView 添加为视图的子视图。在初始化中执行addSubview(stackView)。此外,您需要将 stackView 中的约束添加到父视图。

作为一个建议,我会让你的类成为 UIStackView 的子类,因为无论如何你都不会直接向视图添加多个元素。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-25
    • 1970-01-01
    • 2014-06-18
    • 1970-01-01
    相关资源
    最近更新 更多