我当前设计的工作方式是我将一个单元格出列并给它一个故事ID。在单元格initWithStyle
中,我创建mysubView
(UILabel
),设置autolayout
约束并触发加载故事标题API
的{{1}}请求。然后我为async
设置了文本。
问题是 - 此时UILabel
已经为单元格计算了错误的高度,因为最初UITableViewController
没有UILabel
。现在更新它的唯一方法是执行
text
但是感觉不对,因为我需要从单元格中引用父parentTableView.beginUpdates
parentTableView.endUpdates
,并且必须有更好的方法。我错过了什么吗?我顺便使用UITableView
作为行高。
答案 0 :(得分:1)
我建议你观看WWDC 2012的Session 211,构建并发用户界面并在那里应用这些概念。这包含其内容被独立查询和呈现的单元格。
基本概念如下:
1.在tableView:cellForRowAtIndexPath
中,实例化一个单元格
2.在相同的方法中,创建用于检索数据以填充单元格的操作并将其存储到字典中。对单元格的引用传递给操作。该操作有一个完成处理程序,用于填充单元格并从字典中删除操作
3.在从方法返回单元格之前,将操作添加到操作队列中
4.在tableView:didEndDisplayingCell:forRowAtIndexPath
中,取消已移出屏幕的单元格的操作将从字典中删除并删除。
答案 1 :(得分:0)
在" cellForRowAtIndexPath"中添加以下代码返回单元格之前的方法。
cell.setNeedsUpdateConstraints() cell.updateConstraintsIfNeeded()
此外,您只能使用" updateConstraintsIfneeded"