如何将子视图添加到我的 stackView?我试试看,但我看不到它们

Posted

技术标签:

【中文标题】如何将子视图添加到我的 stackView?我试试看,但我看不到它们【英文标题】:How can l add subviews to my stackView? I try, but l can't see them in my view 【发布时间】: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()

并为其添加一些约束。

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

【问题讨论】:

你在哪里添加你的堆栈视图到你的视图中?你的限制在哪里? 【参考方案1】:

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

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

【讨论】:

以上是关于如何将子视图添加到我的 stackView?我试试看,但我看不到它们的主要内容,如果未能解决你的问题,请参考以下文章

无法将子视图添加到我的 UIView

是否不可能将子视图添加到我的 UITableViewCell 的 contentView 并使其宽度与 contentView 相等?

将子视图添加到 UICollectionViewCell 子类?

将子视图添加到启动画面

将子视图添加到选定的表格视图单元格

将继承的子视图添加到我的视图