堆栈视图的子视图之一根本不显示

Ces*_*are 4 ios swift uistackview

我希望我的堆栈视图具有三个视图:红色图像、蓝色图像和寄存器视图。问题是,虽然红色和蓝色按钮看起来很好,但注册视图却不然。

在此输入图像描述

这就是我在视图控制器视图中设置和放置堆栈视图的方式:

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
}
Run Code Online (Sandbox Code Playgroud)

这是我的注册视图的代码,但未显示:

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
}()
Run Code Online (Sandbox Code Playgroud)

堆栈视图的另外两个排列视图是UIImageViews。

为什么有两个图像而寄存器视图却没有?我错过了什么吗?

Don*_*Mag 5

您似乎没有为 UIButton 指定框架大小。看看如果添加 autoresizingMask 行会得到什么:

    registerButton.addTarget(self, action: #selector(presentRegisterController), for: .touchUpInside)

    registerButton.autoresizingMask = [.flexibleWidth, .flexibleHeight]

    containerView.addSubview(registerButton)
Run Code Online (Sandbox Code Playgroud)