我有UITableView
个自动行高和自定义UITableViewCell
。在UITableViewCell
内,我首先添加一些具有程序化Autolayout约束的UIButton
。它们完全按照我的要求定位。然后,在3秒(NSTimer
)之后,我删除所有UIButton
并重新添加不同数量的UIButtons
。 (例如,最初我有4 UIButton
,在3秒后,我删除了那4个setNeedsUpdateConstraints
并添加了3个不同的。{/ p>
首先:
发布后旋转:
为什么会这样?我没有看到任何Autolayout警告。此外,在方向更改后,一切都正确定位。什么是需要改变方向?我怎样才能手动强制执行此操作?(仅为此重新加载tableview似乎太多了)
PS:我尝试使用layoutIfNeeded
,layoutSubviews
,UITableViewCell
,但无济于事。
以下是configure:
代码:http://pastebin.com/TcHUXgDU。 (添加了一个不污染这个空间的pastebin)但基本上,我在tableview子类中有一个cellForRowAtIndexPath
方法,我在其UITableView
中调用它UITableViewCell
。此方法添加了这些约束。此外,在计时器触发后,调用相同的代码(在另一个函数中),除了我添加的项目数与初始项目数不同。
这是我的{{1}}布局:(只有顶部,底部,前导,尾随约束已添加到UIView“Outerview”)
答案 0 :(得分:0)
您需要重新加载UITableView,这将重新计算单元格的高度