我正在尝试教程:从RoadMapiOS添加数据https://developer.apple.com/library/ios/referencelibrary/GettingStarted/RoadMapiOS/index.html
事件似乎没有及时解雇。第一个事件仅在三次点击后调用。然后每个事件都是一次点击。有时它似乎落后了两个。
- (void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath{
[tableView deselectRowAtIndexPath:indexPath animated:NO];
NSLog(@"%d", (indexPath.row));
XYZToDoItem *tappedItem = [self.toDoItems objectAtIndex:indexPath.row];
tappedItem.completed = !tappedItem.completed;
[tableView reloadRowsAtIndexPaths:@[indexPath]
withRowAnimation:UITableViewRowAnimationNone];
}
当我使用调试器逐步完成此操作时。
Click on Console output
-------------------------------
Row 5 -
Row 3 4
Row 1 2
Row 3 0
索引基于0,但似乎与之前的事件匹配。这只是模拟器的一个问题,还是可能配置错误?
答案 0 :(得分:1)
查看链接我认为你的功能错误了。你有* de * selectRowAtIndexPath而不是* did * SelectRowAtIndexPath。这就是它被称为“迟到”的原因,因为当你选择了预期时它没有被调用,但是当你选择下一行时,这会激活先前选择的行。
尝试:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath