Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 如何更新UITableViewCell约束';s常量和更新单元格';s高度_Objective C_Uitableview_Ios8_Uiimageview_Autolayout - Fatal编程技术网

Objective c 如何更新UITableViewCell约束';s常量和更新单元格';s高度

Objective 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。映像是异步下载的

我在iOS8和autolayout(纯autolayout,no
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
。如果这不起作用,那么您的实现可能有问题。你能上传一个复制这种行为的基本示例项目吗?