![](/img/trans.png)
[英]Why does an orientation change AutoLayout for my UITableViewCell?
[英]Programmatic Autolayout changes inside UITableViewCell updated only after orientation change
我有一个UITableView
具有自动行高和自定义UITableViewCell
。 在UITableViewCell
内部,我首先添加一些带有程序化Autolayout约束的UIButton
。 它们完全按照我的要求定位。 然后,在3秒后( NSTimer
),我删除所有那些UIButton
并再次重新添加不同数量的UIButton
。 (例如,最初我有4个UIButtons
,3秒后,我删除了4个UIButton
并添加了3个不同的UIButton
。
最初 :
后旋转:
为什么会这样? 我没有看到任何Autolayout警告。 此外,在方向更改后,一切都正确定位。 什么是需要改变方向? 我怎样才能手动强制执行此操作?(仅为此重新加载tableview似乎太多了)
PS:我尝试使用setNeedsUpdateConstraints
, layoutIfNeeded
, layoutSubviews
但无济于事。
这是UITableViewCell
代码: http : //pastebin.com/TcHUXgDU 。 (添加了一个不污染这个空间的pastebin)但基本上,我在tableview子类中有一个configure:
方法,我在其包含UITableView
的cellForRowAtIndexPath
中调用它。 此方法添加了这些约束。 此外,在计时器触发后,调用相同的代码(在另一个函数中),除了我添加的项目数与初始项目数不同。
这是我的UITableViewCell
布局:(只有顶部,底部,前导,尾随约束已添加到UIView“Outerview”)
您需要重新加载UITableView,这将重新计算单元格的高度
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.