如何将子视图添加到我的 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?我试试看,但我看不到它们的主要内容,如果未能解决你的问题,请参考以下文章
是否不可能将子视图添加到我的 UITableViewCell 的 contentView 并使其宽度与 contentView 相等?