UIStackView扩展子视图以使其对齐

时间:2018-12-03 11:26:29

标签: swift uistackview

我正在尝试以编程方式布置StackView,我想要实现的效果是 strong text

但是我得到了

enter image description here

我不明白为什么loadingDotView正在拉伸以填充所有空间?

isSecure

设置代码...

   let loadingDotView: UIView = {
        let ldv = UIView()
        ldv.backgroundColor = .white
        ldv.alpha = 0
        ldv.frame = CGRect(x: 0, y: 0, width: 20, height: 20)
        ldv.layer.cornerRadius = 10
        ldv.layer.masksToBounds = true
        ldv.translatesAutoresizingMaskIntoConstraints = false
        return ldv
    }()

    let dotsStackView: UIStackView = {
        let stackView = UIStackView()
        stackView.axis = .horizontal
        stackView.distribution = .equalSpacing
        stackView.translatesAutoresizingMaskIntoConstraints = false
        return stackView
    }()

1 个答案:

答案 0 :(得分:0)

此(关闭)

let loadingDotView: UIView = {
    let ldv = UIView()
    ldv.backgroundColor = .white
    ldv.alpha = 0
    ldv.frame = CGRect(x: 0, y: 0, width: 20, height: 20)
    ldv.layer.cornerRadius = 10
    ldv.layer.masksToBounds = true
    ldv.translatesAutoresizingMaskIntoConstraints = false
    return ldv
}()

每次访问都返回相同的对象,因此只有一个出现,使它(计算属性)每次访问都创建一个新对象

var loadingDotView: UIView {
    let ldv = UIView()
    ldv.backgroundColor = .white
    ldv.alpha = 0
    ldv.frame = CGRect(x: 0, y: 0, width: 20, height: 20)
    ldv.layer.cornerRadius = 10
    ldv.layer.masksToBounds = true
    ldv.translatesAutoresizingMaskIntoConstraints = false
    return ldv
}

并添加

stackView.spacing = 20
stackView.distribution = .fillEqually

enter image description here