gpt4 book ai didi

iphone - 检测 UITableView 何时被重新排序

转载 作者:行者123 更新时间:2023-12-03 19:23:15 37 4
gpt4 key购买 nike

我有一个由 NSFetchedResultsController 支持的 UITableView,它可能随时触发更新。如果用户当前正在对行重新排序,应用这些更新将导致异常,因为 TableView 已暂时接管并且您会收到类似的错误

Invalid update: invalid number of rows in section [...]

如何检测用户何时开始移动单元格,以便延迟由获取的结果 Controller 引起的更新?似乎没有任何 TableView 委托(delegate)方法可以检测到这一点。这个委托(delegate)方法:

- (NSIndexPath *)tableView:(UITableView *)tableView targetIndexPathForMoveFromRowAtIndexPath:(NSIndexPath *)sourceIndexPath toProposedIndexPath:(NSIndexPath *)proposedDestinationIndexPath {

当用户最初分离第一个单元格时不会被调用,只有当他们实际将其移动到其他地方时才会被调用。

一种解决方案是在获取的结果回调中检查 isEditing 并执行批量 reloadData 而不是动态插入/删除行,但我想知道是否有一种专门检查“重新排序”模式的方法。

最佳答案

你错了,tableView:canMoveRowAtIndexPath并不能解决问题。

对要更新或删除的所有单元格使用 [cell setEditing:NO]。

如果用户拖动单元格,拖动模式将被取消。

如果您需要[cell setEditing:YES],您可以在完成更新后立即恢复它。

关于iphone - 检测 UITableView 何时被重新排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2720782/

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