按代码选择单元格后的奇怪行为

时间:2012-09-27 09:17:03

标签: objective-c ios uitableview

在使用此代码选择单元格后,我遇到了一些奇怪的行为:

NSIndexPath * indexPath = [NSIndexPath indexPathForRow:1 inSection:0];

CustomCell * cell = (CustomCell*)[_myTableView cellForRowAtIndexPath:indexPath];

[cell setSelected:YES animated:NO];

在此之后我无法准确选择这个单元格,它只是没有响应而且

-(void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath

从未被召唤过。

这也没有被称为:

-(void)tableView: (UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 

我做错了什么?

3 个答案:

答案 0 :(得分:0)

根据Apple的文档,预计会出现这样的行为:在编程选择单元格后,您提及的方法永远不会被调用。更多信息是in this post

答案 1 :(得分:0)

你没错,这是正常行为。但是你会在这里找到你的解决方案:

Select tableview row programmatically

答案 2 :(得分:0)

您需要手动调用这两种方法,因为手动选择单元格不会调用委托方法。

[cell setSelected:YES animated:NO];
[self tableView:_myTableView didSelectRowAtIndexPath:indexPath];