如何更新UITableViewCell约束的常量并更新单元格的高度

时间:2015-03-31 23:49:41

标签: objective-c uitableview ios8 uiimageview autolayout

我在iOS8和autolayout(纯自动布局,没有heightForRowAtIndexPath:)下自我调整大小的问题。

我有两个UITableView子类。两者都包含某种标题(静态高度),页脚(也是静态高度)和动态高度的“内容”。第一个中的动态内容为UILabel,行号设置为0,它就像一个魅力,它在cellForRowAtIndexPath中同步设置(这很重要!)。 NSString设置为UILablel.text并且瞧。

第二种类型是UIImageView。该图片以AFNetworking的{​​{1}}类别异步下载。在完成块中,我设置了UIImage的{​​{1}}并更新了计算约束的常量:

  • 这是一个高度限制,
  • 它是一个出口,
  • UIImageView的宽度是固定的,高度是计算的
  • 高度取决于图像的大小

现在,我尝试过:

  • UIImage的子类中调用UIImageView - 根本不起作用
  • 设置delegete,并使用此方法调用layoutIfNeeded
    • 在单元格的索引路径处重新加载行 - 它会导致奇怪的滚动行为
    • UITableViewCell上调用-cellNeedsUpdate:(UITableViewCell *)cell并开始/结束更新 - 这个是非常的starnge,出现随机行,单元格的背景颜色发生变化
  • varoius上面的组合 - 结果奇怪的行为或根本不起作用

有没有办法在没有滚动问题的情况下正确设置?

1 个答案:

答案 0 :(得分:0)

在主线程上,请致电:

[tableView beginUpdates];
[tableView endUpdates];

这会强制tableview重新计算所有可见单元格的高度。