Objective c 如何更新UITableViewCell约束';s常量和更新单元格';s高度
我在iOS8和autolayout(纯autolayout,noObjective c 如何更新UITableViewCell约束';s常量和更新单元格';s高度,objective-c,uitableview,ios8,uiimageview,autolayout,Objective C,Uitableview,Ios8,Uiimageview,Autolayout,我在iOS8和autolayout(纯autolayout,noheightforrowatinexpath:)下的自调整单元格大小时遇到问题 我有两个UITableView子类。两者都包含某种类型的页眉(静态高度)、页脚(也是静态高度)和具有动态高度的“内容”。第一个中的动态内容是UILabel,行号设置为0,它就像一个符咒,在cellforrowatinexpath中同步设置(这很重要!)NSString设置为uilabel.text,瞧 第二种类型是UIImageView。映像是异步下载的
heightforrowatinexpath:
)下的自调整单元格大小时遇到问题
我有两个UITableView
子类。两者都包含某种类型的页眉(静态高度)、页脚(也是静态高度)和具有动态高度的“内容”。第一个中的动态内容是UILabel
,行号设置为0,它就像一个符咒,在cellforrowatinexpath中同步设置(这很重要!)NSString
设置为uilabel.text
,瞧
第二种类型是UIImageView
。映像是异步下载的,使用AFNetworking
的UIImage
类别。在完成块中,我正在设置UIImageView
的UIImage
并更新计算约束的常数:
- 这是高度限制
- 这是一个出口
UIImageView
的宽度是固定的,高度是计算出来的
- 高度取决于图像的大小
现在,我尝试的是:
- 在
UITableViewCell
的子类中调用layoutifneed
,根本不起作用
- 设置一个deleget,调用
-cellNeedsUpdate:(UITableViewCell*)cell
,并使用此方法:
- 在单元格的indexpath处重新加载行-这会导致奇怪的滚动行为
- 调用
layoutifneed
并在UITableView
上开始/结束更新-这一次非常开始,出现随机行,单元格背景颜色发生变化
- 上述结果的varoius组合会导致奇怪的行为或根本不起作用
有没有办法在不出现滚动问题的情况下正确设置它?在主线程上,调用:
[tableView beginUpdates];
[tableView endUpdates];
这将迫使tableview重新计算所有可见单元格的高度。正如我之前所写的-它会导致奇怪的滚动问题不要调用layoutifneed
。如果这不起作用,那么您的实现可能有问题。你能上传一个复制这种行为的基本示例项目吗?