我在一个竖直的UIStackView
中有两个元素:一个UILabel
和一个UITableView
。当在运行时动态添加一定数量的UITableViewCell
到UITableView
中时,UIStackView
的大小不会增加。
是否有一般的方法可以增加UIStackView
的大小?
我在一个竖直的UIStackView
中有两个元素:一个UILabel
和一个UITableView
。当在运行时动态添加一定数量的UITableViewCell
到UITableView
中时,UIStackView
的大小不会增加。
是否有一般的方法可以增加UIStackView
的大小?
您需要在栈视图的子视图上调用 sizeToFit()
和 layoutIfNeeded()
。像往常一样对UIStackView进行约束,并像往常一样对子视图进行约束。
另外,您需要将其设置为 proportionally fill(等比例填充),它将自适应新内容调整大小。
确保在stackview上没有底部约束或高度约束。您只需要左侧、右侧和顶部约束。
UIStackView
似乎无法动态增加大小,除非您向其中添加另一个元素。 - jshapy8=
,但将其优先级降低(如500),这样它开始更好地自动布局单元格。 - Mando我在iOS 12上遇到了这个问题,而在iOS 13上却表现正常。只需进行如下设置:
stackView.distribution = .fillProportionally
修复了 :)
您只需要按比例填充,它将根据您的代码进行运作。
UITableView
时都调用它们? - jshapy8viewWillLayoutSubviews
中调用它们。 - Siriss