我尝试动态绘制和重绘我的UITableView,但动态但我的单元格没有显示(除了最后一个)。
我将UITableViewCell存储在一个数组中,发现我的单元格具有相同的hexa地址(0xa647f80和0xa64cbf0),这就是为什么我猜我的桌子保留了空间而不是覆盖单元格
这是我的数组的一部分:
(
(
"<CriteriaAdvancedSubmenuCell: 0xa647f80; baseClass = UITableViewCell; frame = (0 0; 320 44); layer = <CALayer: 0xa610c60>>",
"<CriteriaAdvancedSubmenuCell: 0xa64cbf0; baseClass = UITableViewCell; frame = (0 0; 320 44); layer = <CALayer: 0xa63c4f0>>"
),
(
"<CriteriaAdvancedSubmenuCell: 0xa647f80; baseClass = UITableViewCell; frame = (0 0; 320 44); layer = <CALayer: 0xa610c60>>",
"<CriteriaAdvancedSubmenuCell: 0xa64cbf0; baseClass = UITableViewCell; frame = (0 0; 320 44); layer = <CALayer: 0xa63c4f0>>"
),
(
"<CriteriaAdvancedSubmenuCell: 0xa647f80; baseClass = UITableViewCell; frame = (0 0; 320 44); layer = <CALayer: 0xa610c60>>",
"<CriteriaAdvancedSubmenuCell: 0xa64cbf0; baseClass = UITableViewCell; frame = (0 0; 320 44); layer = <CALayer: 0xa63c4f0>>"
)
)
以下是我如何实现我的细胞:
static NSString *cellID = @"criteriaAdvancedSelectionCustomCell";
CriteriaAdvancedSubmenuCell *cell = (CriteriaAdvancedSubmenuCell *) [tableView dequeueReusableCellWithIdentifier:cellID];
if (cell == nil)
{
cell = (CriteriaAdvancedSubmenuCell *) [tableView dequeueReusableCellWithIdentifier:cellID];
}
else
{
[cell prepareForReuse];
}
请帮助我,我变得疯狂了!
谢谢:)
答案 0 :(得分:1)
if (cell == nil)
{
cell = (CriteriaAdvancedSubmenuCell *) [tableView dequeueReusableCellWithIdentifier:cellID];
}
您告诉您的TVC重复使用尚不存在的单元格。
尝试像这样替换if部分(您可能需要更改UITableViewCellStyleDefault
部分):
if (cell == nil) {
cell = [[CriteriaAdvancedSubmenuCell alloc] initWithStyle:UITableViewCellStyleDefault
reuseIdentifier:@"criteriaAdvancedSelectionCustomCell"];
}