【发布时间】:2015-03-31 23:49:41
【问题描述】:
在 iOS8 和自动布局(纯自动布局,没有 heightForRowAtIndexPath:)下,我遇到了自调整单元格大小的问题。
我有两个UITableView 子类。两者都包含某种页眉(静态高度)、页脚(也是静态高度)和具有动态高度的“内容”。第一个动态内容是UILabel,行号设置为0,它就像一个魅力,它在cellForRowAtIndexPath中同步设置(这很重要!)。 NSString 设置为 UILablel.text,瞧。
第二种类型是UIImageView。图像是异步下载的,带有AFNetworking 的UIImage 类别。在完成块中,我正在设置 UIImageView 的 UIImage 并更新计算约束的常量:
- 这是一个高度限制,
- 它是一个出口,
-
UIImageView的宽度是固定的,高度是计算出来的 - 高度取决于图片的大小
现在,我已经尝试过:
- 在
UITableViewCell的子类中调用layoutIfNeeded- 根本不起作用 - 设置一个委托人,并调用
-cellNeedsUpdate:(UITableViewCell *)cell,并使用此方法:- 在单元格的 indexpath 处重新加载行 - 它会导致奇怪的滚动行为
- 调用
layoutIfNeeded并在UITableView上调用begin/endUpdates - 这个非常明显,随机行出现,单元格的背景颜色发生变化
- 以上的各种组合 - 导致奇怪的行为或根本不起作用
有什么方法可以正确设置而不会出现滚动问题?
【问题讨论】:
标签: objective-c uitableview ios8 uiimageview autolayout