2012-01-10 140 views
0

我有一个tableView,我可以选择多个记录。当我点击更多的1记录单元格应该突出显示。我在下面附上我的代码;现在有什么值得注意的是,当我点击多个记录时,它很重要,但是当我尝试删除它时(如同样再次点击同一行),不同的单元格将变为不突出显示。为什么是这样 ?选中时突出显示单元格

但是,如果我用[cell setAccessoryType:UITableViewCellAccessoryCheckmark];替换[cell setHighlighted:YES animated:YES/NO];一切正常。我怎样才能解决这个问题 ?

我加入的代码在didSelectRowAtIndexPath

UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath]; 

if ([cell accessoryType] == UITableViewCellAccessoryNone) { 
    [cell setHighlighted:YES animated:YES]; 

} 
else { 
     [cell setHighlighted:NO animated:YES]; 
} 

回答

3

你可能想使用UITableViewCellAccessoryCheckmark,因为它是用于这一目的。

+0

如果我用我自己的方式,会是一个问题吗?该应用会被appStore拒绝吗? – Illep 2012-01-10 17:13:52

+0

@Illep你更有可能被拒绝,但这取决于你如何使用自己的目的的程度 – blake305 2012-01-10 17:16:43

+0

@ blake305,我不这么认为会因此而被拒绝。 – AAV 2012-01-10 17:18:59

2

根据苹果开发者文档选择多个行应该使用。

 cell.accessoryType = UITableViewCellAccessoryCheckmark; 

和取消

 cell.accessoryType = UITableViewCellAccessoryNone; 
+0

这是为什么,如果我使用其他方式,我的应用程序会被拒绝?你能把我的开发文档说这个吗? – Illep 2012-01-10 17:13:02

+0

你的应用程序不会因为这个而拒绝,但它很好的使用Checkmark而不是setHighlighted:YES。 – AAV 2012-01-10 17:15:12

+0

如果你能请你发布苹果开发文档的链接,我会非常感谢,它说这个? – Illep 2012-01-10 17:24:45

0

除了提出的UI问题,您遇到的问题可能是是由于您的表格单元格被重复使用,并保留之前在该单元格中显示的记录中突出显示的状态。

我建议你为高亮显示的那些记录索引/编号。你应该总是检查这个,而不是细胞本身的状态。 (您可以根据您的需要使用NSArray或其他集合类)。

tableView:cellForRowAtIndexPath:您还应该检查此数组并相应地设置突出显示的状态。

相关问题