【发布时间】:2020-10-21 09:59:45
【问题描述】:
我有一个子视图:
这是该视图的子类:
class MyView: UIView {
public init(){
super.init(frame: .zero)
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
}
}
在我的主视图控制器上,我有一个 stackView:
如果我将单个视图添加到堆栈视图:
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
generaRedView()
}
func generaRedView() {
let newView = MyView()
newView.backgroundColor = .red
stackView.addArrangedSubview(newView)
}
看起来还不错:
但我在堆栈视图中添加了两个视图:
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
generaRedView()
generaBlueView()
}
func generaRedView() {
let newView = MyView()
newView.backgroundColor = .red
stackView.addArrangedSubview(newView)
}
func generaBlueView() {
let newView = MyView()
newView.backgroundColor = .blue
stackView.addArrangedSubview(newView)
}
子视图被压缩:
我的问题是如何让 stackView 尊重子视图的大小并增加堆栈视图的高度,以便子视图看起来正常而不压缩?
非常感谢您的帮助。
【问题讨论】:
-
您是否正确配置了stackView?请分享您的整个代码。
-
您必须添加要添加到 StackView 的子视图的高度。如果您不想定义子视图的高度,或者给 StackView 提供静态高度。
标签: ios swift stack uistackview xcode11.4