【发布时间】:2017-02-13 16:18:29
【问题描述】:
我希望我的堆栈视图具有三个视图:红色图像、蓝色图像和寄存器视图。问题是,虽然红色和蓝色按钮看起来很好,但注册视图却没有。
这就是我设置堆栈视图并将其放置在视图控制器视图中的方式:
func setupSocialStackView() {
let socialStackView = UIStackView(arrangedSubviews: redImage, blueImage, registerView])
socialStackView.axis = .vertical
socialStackView.distribution = .fillProportionally
view.addSubview(socialStackView)
socialStackView.spacing = 8
// NSLayoutAnchor constraints here to place stack view
// inside my view controller view
}
这是我未显示的注册视图的代码:
lazy var registerView: UIView = {
let containerView = UIView()
// Register button
let registerButton = UIButton(type: .system)
registerButton.setTitle("Register", for: .normal)
registerButton.titleLabel?.font = UIFont.systemFont(ofSize: 12, weight: UIFontWeightLight)
registerButton.titleLabel?.textAlignment = .center
registerButton.setTitleColor(UIColor.black, for: .normal)
registerButton.titleLabel?.textColor = UIColor(r: 91, g: 90, b: 90)
registerButton.addTarget(self, action: #selector(presentRegisterController), for: .touchUpInside)
containerView.addSubview(registerButton)
return containerView
}()
堆栈视图的另外两个排列视图是UIImageViews。
为什么有两个图像而寄存器视图没有?我错过了什么吗?
【问题讨论】:
-
能不能显示下没有显示的view的约束?
-
A
UIView默认情况下没有intrinsicContentSize,因此要将其与带有垂直轴的UIStackView一起使用,您需要添加高度约束。因为它是堆栈视图,所以将您的寄存器视图的高度设置为 0。
标签: ios swift uistackview