在cellForRowAtIndexPath中更新单元格不起作用
问题描述:
我有一个UITableView
,它允许我在选择父级行时扩展子行。在cellForRowAtIndexPath中更新单元格不起作用
这是我的父行:
,如果我选择该行,然后它展开:
我要让孩子行元素缩进了一点所以它真的看起来下面的项目是孩子。
在我UITableViewCell
我设置图标和标题给细胞增加时,该代码:
func setData(data: ExpandableCell,indexPath : NSIndexPath)
{
self.itemImg.image = UIImage(named: data.icon)
self.itemTitle.text = data.title
if(!data.isParent){
// indent views
self.itemImg.frame.origin.x = 53
self.itemTitle.frame.origin.x = 85
}
if(data.childs.count == 0){
// remove the expand - collpase icon when its child row
self.expandImg.removeFromSuperview()
}
}
,我的问题是第一时间的子行显示它并没有缩进图标和标签。它的工作原理,直到第二次:
子行显示第一次(没有工作):
第二次子行显示( 这次有效!)
我是否必须设置某些东西才能始终工作?我已经这样做了:SetNeedDisplay()
但是门槛具有相同的行为。
答
的问题是,你的逻辑是不完整的:
if(!data.isParent){
精细,但如果data.isParent
是真的吗?那么你不知道该怎么做。请记住,单元格被重用。您需要准备好空的已填充的单元格并对其进行重新配置。
我只是修复,但我仍然有相同的行为。任何线索@matt? – VAAA
我不得不寻找其他解决方案,我所做的是在单元格中添加其他两个元素,一个缩进子图像和一个缩进子标签,然后隐藏其父行的缩进并显示子元素时显示。现在它似乎工作......真的是一个很奇怪的问题。它对我没有意义。 – VAAA
这听起来不像我,你真的做了我所建议的...... – matt