iOS/Swift:当其中一个项目变大时,动态调整UIStackView的大小

jsh*_*py8 14 ios swift uistackview

我有两个垂直项目UIStackView:a UILabel和a UITableView.当动态数量的UITableViewCells被添加到UITableView运行时时,UIStackView不会变大.

是否有一般方法来增加UIStackView?的大小?

Sir*_*iss 11

你应该叫sizeToFit()layoutIfNeeded()对stackView的子视图.像往常一样限制UIStackView,并像往常一样约束子视图.

此外,您需要将其设置为按比例填充,它将调整大小以适应新内容.

  • viewWillLayoutSubviews 是 UIViewController 中的一个方法,所以我不明白答案:“您应该在 stackView 的子视图上的 viewWillLayoutSubviews 中调用 sizeToFit() 和 layoutIfNeeded()。” (2认同)

小智 8

确保堆栈视图上没有高度约束的底部约束.您应该只需要左,右和上限制.


Urk*_*man 8

我在 iOS 12 上有这个,而它在 iOS 13 上运行良好。只需设置:

stackView.distribution = .fillProportionally
Run Code Online (Sandbox Code Playgroud)

修复 :)


小智 5

您需要按比例填写,它将根据您的代码工作