我有两个垂直的项目
UIStackView
:一个UILabel
和一个UITableView
。当运行时将动态数量的 UITableViewCell
添加到 UITableView
时,UIStackView
不会变大。
有没有通用的方法来增加
UIStackView
的大小?
您应该在 stackView 的子视图上调用
sizeToFit()
和 layoutIfNeeded()
。像平常一样约束 UIStackView,并像平常一样约束子视图。
此外,您需要将其设置为“按比例填充”,它将调整大小以适应新内容。
确保 stackview 上没有高度约束的底部约束。你应该只需要左、右和顶部约束。
我在 iOS 12 上有这个,而在 iOS 13 上运行得很好。 只需设置:
stackView.distribution = .fillProportionally
修好了:)
您需要按比例填写,它将根据您的代码工作
这个问题有点老了,但它可能对其他人有帮助。
我花了很长时间才找到正确的方法。
如果您有一个放置子视图的垂直堆栈视图,请创建前面提到的垂直堆栈视图的出口,并在
viewDidLoad()
(在我的例子中是弹出视图控制器)中执行以下操作:
self.view.layoutIfNeeded()
self.preferredContentSize.height = verticalStackView.sizeThatFits(CGSizeZero).height
与@Siriss所说的不同,
sizeToFit()
在我的情况下没有必要。