我有两个垂直StackView
嵌套在水平StackView
中。
第一个:
titlesView.axis = .vertical
titlesView.distribution = .fill
titlesView.alignment = .leading
第二个:
checkView.axis = .vertical
checkView.distribution = .fil
checkView.alignment = .center
和holderStackView(root)
holderStackView.axis = .horizontal
holderStackView.alignment = .center
holderStackView.distribution = .fill
holderStackView.addArrangedSubview(titlesView)
holderStackView.addArrangedSubview(checkView)
titlesView.setContentHuggingPriority(.defaultLow, for: .horizontal)
checkView.setContentHuggingPriority(.defaultHigh, for: .horizontal)
我希望titlesView必须填充StackView,但checkView StackView填充holderStackView堆栈视图。
如果我为它们center
或leading
设置了对齐方式,那么它会按预期工作,第一个会增长。
期望:
现实:
我该如何解决这个问题?
仅在contentView
的{{1}}内发生,请参阅下面的最小示例:
UITableViewCell
class ViewController: UITableViewController {
override func viewDidLoad() {
super.viewDidLoad()
tableView.separatorColor = UIColor(red:0.87, green:0.87, blue:0.87, alpha:1.00)
tableView.estimatedRowHeight = 150
tableView.backgroundColor = UIColor.clear
tableView.rowHeight = UITableViewAutomaticDimension
self.view.backgroundColor = UIColor(red:0.93, green:0.93, blue:0.93, alpha:1.00)
}
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 6
}
override func numberOfSections(in tableView: UITableView) -> Int {
return 1
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
return MedicationHomeCell()
}
}
答案 0 :(得分:0)
UIStackView似乎不尊重内容拥抱和阻力压缩属性。而是在每个排列的子视图上设置这些属性。
对于嵌套堆栈视图,您可能需要向下钻取到其非堆栈排列的子视图,然后在其中设置属性。