为什么 UIStackView 调整排列的子视图的大小?

Ale*_*ach 1 uikit autolayout swift uistackview snapkit

为什么要UIStackView调整子视图的大小?我认为它的工作时,我设置distribution一样.fill。但.equalSpacing并不暗示有这种行为。我是对的?

let stackView = UIStackView()
    stackView.alignment = .firstBaseline
    stackView.axis = .vertical
    stackView.distribution = .equalSpacing
    stackView.spacing = 0.0
    stackView.translatesAutoresizingMaskIntoConstraints = true
    self.view.addSubview(stackView)

    stackView.snp.makeConstraints { (make) -> Void in
      make.top.equalTo(button.snp.bottom)
      make.left.equalTo(view).offset(16.0)
      make.bottom.equalTo(view)
      make.right.equalTo(view).offset(-16.0)
    }

    let exampleView = UIView(frame: .zero)
    stackView.addArrangedSubview(exampleView)
    exampleView.backgroundColor = .yellow

    exampleView.snp.makeConstraints { (make) in
      make.width.equalToSuperview()
      make.height.equalTo(60.0)
    }
Run Code Online (Sandbox Code Playgroud)

Don*_*Mag 5

AUIStackView安排其子视图。

这意味着:

  • 如果您约束其高度(高度约束或顶部和底部约束),它将调整/布局子视图以适应其高度。
  • 如果您限制其高度,它将使用其子视图高度进行布局。

在此处输入图片说明