gpt4 book ai didi

iOS滑动删除单元格突然恢复正常状态

转载 作者:行者123 更新时间:2023-11-28 17:52:37 25 4
gpt4 key购买 nike

我正在尝试实现滑动删除手势。

有时,在执行滑动手势后,单元格会以一种强制的方式恢复到正常状态。进入编辑模式并点击 - 按钮也会发生这种情况。

它是随机发生的。

当用户点击编辑按钮时总是调用此方法:

- (IBAction)editButtonTapped:(UIBarButtonItem *)sender {
[self.tableView setEditing:!self.tableView.editing animated:YES];
}

canEditRowAtIndexPath 方法总是返回 YES。这是我的 commitEditingStyle 方法:

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
NSManagedObjectContext *context = [self managedObjectContext];

if (editingStyle == UITableViewCellEditingStyleDelete) {
// Delete object from database
[context deleteObject:[self.alarmsMutableArray objectAtIndex:indexPath.row]];

NSError *error = nil;
if (![context save:&error]) {
NSLog(@"Can't Delete! %@ %@", error, [error localizedDescription]);
return;
}

// Remove object from table view
[self.alarmsMutableArray removeObjectAtIndex:indexPath.row];
[self.tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationAutomatic];
}
}

最佳答案

您需要将从模型和 tableView 中删除项目嵌套在更新 block 中所以在你的最后两行代码之前放..

[self.tableView beginUpdates];

然后在最后放..

[self.tableView endUpdates];

……请注意,在最后两行之间,您的模型与您的 tableView 不同步(您已经从数组中删除了一个对象,但尚未删除一个单元格......)你应该只在 [ beginUpdates] 和 [endUpdates] 否则您的应用可能会崩溃。

关于iOS滑动删除单元格突然恢复正常状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27935806/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com