为什么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)
}
答案 0 :(得分:0)
UIStackView
将 安排 其子视图。
这意味着:
答案 1 :(得分:0)
请检查有关 UIStackViewDistributionEqualSpacing
的Apple文档一种布局,在该布局中,堆栈视图会放置其排列的视图,以便它们沿堆栈视图的轴填充可用空间。当排列的视图未填充堆栈视图时,它将均匀填充视图之间的间距。如果排列的视图不适合堆叠视图,则它会根据其抗压缩优先级来缩小视图。如果有任何歧义,则堆栈视图会根据它们在ArgumentedSubviews数组中的索引缩小视图。