gpt4 book ai didi

objective-c - 使用 deleteRowsAtIndexPaths 后 indexPath 未更新

转载 作者:太空狗 更新时间:2023-10-30 03:28:31 26 4
gpt4 key购买 nike

我创建了一个方法,当用户想要删除一个单元格时更新我的​​ UITableView。

-(void)removeMoreFriendsRow:(NSNotification *)notification {
NSDictionary *d = [notification userInfo];
NSIndexPath *index = [d objectForKey:@"indexPath"];

[self.p_currentFriends removeObjectAtIndex:index.row];

[self.o_table deleteRowsAtIndexPaths:[NSArray arrayWithObject:index] withRowAnimation:UITableViewRowAnimationRight];
}

p_currentFriends 是一个 NSMutableArray,它包含 UITableView 打印的所有对象。

这个方法我用了一次很好用,但是用了多次就失效了。

似乎每次调用 deleteRowsAtIndexPaths 时 indexPath 都保持不变。

例如,

  • 在第一次调用时,用户点击第二个单元格,indexPath = [0,1] 并删除正确的单元格,
  • 在第二次调用时,用户点击第三个单元格并且 indexPath = [0,3] 而不是 [0,2]

我发现让它工作的唯一方法是使用 reloadData,但我想在单元格删除时有一个动画。

我该怎么做?

最佳答案

您所做的基本上是正确的,但您需要以某种方式重新加载 tableView。如果您不想重新加载整个 tableView,请使用它,它也会为您提供 animation -

NSIndexSet *indexSet = [NSIndexSet indexSetWithIndex:sectionNum];
[self.o_table reloadSections:indexSet
withRowAnimation:UITableViewRowAnimationFade];

关于objective-c - 使用 deleteRowsAtIndexPaths 后 indexPath 未更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13346282/

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