Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 重新加载时编辑控件消失_Iphone_Objective C_Uitableview - Fatal编程技术网

Iphone 重新加载时编辑控件消失

Iphone 重新加载时编辑控件消失,iphone,objective-c,uitableview,Iphone,Objective C,Uitableview,有点麻烦 我有一个分组模式的UITableView。该表被设置为始终处于编辑模式-工作正常。我的所有行都可以删除。行是缩进的,我的所有UITableViewCellEditControl都显示得很好 问题是,当一行实际被删除时,我会更新数据源,然后调用: deleteRowsAtIndexPaths: reloadRowsAtIndexPaths: //needs to get called because of table aesthetics 重新加载后(我也尝试了简单的重新加载数据),我

有点麻烦

我有一个分组模式的UITableView。该表被设置为始终处于编辑模式-工作正常。我的所有行都可以删除。行是缩进的,我的所有UITableViewCellEditControl都显示得很好

问题是,当一行实际被删除时,我会更新数据源,然后调用:

deleteRowsAtIndexPaths:
reloadRowsAtIndexPaths: //needs to get called because of table aesthetics
重新加载后(我也尝试了简单的重新加载数据),我的UITableViewCellEditControls(带负号的红色圆圈等)都消失了!行仍然缩进,但它们已消失

我在这篇帖子上尝试过这个建议:

但是没有运气


任何帮助都将不胜感激

不看任何代码,我有一些建议

根据苹果的:在重新加载数据下,它说:

调用此方法以重新加载用于构造表的所有数据,包括单元格、节页眉和页脚、索引数组等。为了提高效率,表视图只重新显示那些可见的行。如果表格因重新加载而收缩,则会调整偏移。当表视图希望表视图完全重新加载其数据时,表视图的委托或数据源调用此方法。不应在插入或删除行的方法中调用它,尤其是在通过调用BeginUpdate和EndUpdate实现的动画块中 大宗报价

插入和删除行时不应调用它

从表面上看,您允许它们删除单个单元格,因此,我假设已经实现了以下方法:
tableView:editingStyleForRowAtIndexPath:
tableView:committeeditingstyle:forRowAtIndexPath:
,在您的committeeditingstyle中,您应该只调用delete方法,如下所示:

[tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
这将消除重新加载数据的需要。如果您不想显示任何动画,您可以使用noanimation枚举器,而不是我在示例中显示的淡入淡出

但是,如果您仍然认为每次删除单元格后都需要重新加载数据,可以使用
performSelector:afterDelay:


希望这篇文章能有所帮助

不看任何代码,我有一些建议

根据苹果的:在重新加载数据下,它说:

调用此方法以重新加载用于构造表的所有数据,包括单元格、节页眉和页脚、索引数组等。为了提高效率,表视图只重新显示那些可见的行。如果表格因重新加载而收缩,则会调整偏移。当表视图希望表视图完全重新加载其数据时,表视图的委托或数据源调用此方法。不应在插入或删除行的方法中调用它,尤其是在通过调用BeginUpdate和EndUpdate实现的动画块中 大宗报价

插入和删除行时不应调用它

从表面上看,您允许它们删除单个单元格,因此,我假设已经实现了以下方法:
tableView:editingStyleForRowAtIndexPath:
tableView:committeeditingstyle:forRowAtIndexPath:
,在您的committeeditingstyle中,您应该只调用delete方法,如下所示:

[tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
这将消除重新加载数据的需要。如果您不想显示任何动画,您可以使用noanimation枚举器,而不是我在示例中显示的淡入淡出

但是,如果您仍然认为每次删除单元格后都需要重新加载数据,可以使用
performSelector:afterDelay:


希望这篇文章能有所帮助

我正在使用自定义UITableViewCell,并认为这可能是问题的一部分。。。但是不行。我只是改变了使用普通的旧UITableViewCell时的情况,编辑控件仍然消失。我正在使用自定义UITableViewCell,并认为这可能是问题的一部分。。。但是不行。我只是用普通的旧UITableViewCell改变了一些事情,编辑控件仍然消失了。嗨,Bittu,谢谢你提供的信息!!我没有意识到在插入/删除行时不应该进行重新加载调用,这回答了为什么表有问题。问题是:我正在完全定制分组uitableview的外观,其中包括阴影顶行、中间行和底行。由于美观要求,顶行和底行(特别是因为阴影)需要比中间行大10px。现在,如果用户删除顶行,第二行现在成为顶行-这意味着它的高度和背景图像需要更新。。。有没有更简单的方法?你可以走两条路。使用KVO,您可以监视顶部和底部阴影的大小,并相应地进行调整。此外,可能有一些方法可以将部分阴影作为节页眉和页脚的一部分,因此它看起来像是附加到第一行和最后一行。只是想尝试一下。嗨,比图,谢谢你的信息!!我没有意识到在插入/删除行时不应该进行重新加载调用,这回答了为什么表有问题。问题是:我正在完全定制分组uitableview的外观,其中包括阴影顶行、中间行和底行。由于美观要求,顶行和底行(特别是因为阴影)需要比中间行大10px。现在,如果用户删除顶行,第二行现在成为顶行-这意味着它的高度和背景图像需要更新。。。有没有更简单的方法?你可以走两条路。使用KVO,您可以监视顶部和底部阴影的大小,并相应地进行调整。此外,可能有一些方法可以将部分阴影作为节页眉和页脚的一部分,因此它看起来像是附加到第一行和最后一行。扔