当 UIStackView 更改其排列的子视图时,UITableViewCell 不会调整大小
Posted
技术标签:
【中文标题】当 UIStackView 更改其排列的子视图时,UITableViewCell 不会调整大小【英文标题】:UITableViewCell doesn't resize when UIStackView changes its arranged subviews 【发布时间】:2016-07-05 10:34:25 【问题描述】:我正在为我的UITableView
使用自动布局,它是自定义单元格。其中一个单元格有一个UIStackView
,我在其中添加和删除排列的子视图,但是,当其排列的子视图发生变化时,单元格本身不会调整大小。
调用reloadData()
方法可以解决这个问题,但是,我只想更新一个发生变化的单元格。
但是,当我尝试调用 reloadRowsAtIndexPaths(_:withRowAnimation:)
时,它只会更新以显示排列的子视图上的先前更改。因此,例如,如果我添加一个排列好的子视图,比如说一个红色的,然后似乎什么都没有发生(即使在我检查时添加了子视图),然后添加第二个会导致单元格重新加载,但只会更新以显示前一个红色添加的排列子视图等等。
有没有办法强制特定单元格在UITableView
中布局?
更新:Here is a link to an example project showing the issue:
【问题讨论】:
你是怎么解决的? 【参考方案1】:看来here 发布的答案有效。我选择了答案的非动画版本,但两者似乎都有效。
【讨论】:
以上是关于当 UIStackView 更改其排列的子视图时,UITableViewCell 不会调整大小的主要内容,如果未能解决你的问题,请参考以下文章
当排列视图的大小发生变化时,如何确保 UIStackView 通知它的所有后代?
即使隐藏了排列的子视图,UIStackView 似乎也会堆叠间距