已处于编辑模式时滑动删除
Posted
技术标签:
【中文标题】已处于编辑模式时滑动删除【英文标题】:swipe to delete when already in edit mode 【发布时间】:2009-09-03 02:43:07 【问题描述】:我有一个使用 uitableview 的 iphone 应用程序,我希望始终显示“重新排序”控件,并让用户滑动以删除行。
我目前采用的方法是将tableview置于编辑模式并允许在编辑模式下进行选择
self.tableView.editing = YES;
self.tableView.allowsSelectionDuringEditing = YES;
然后我使用隐藏红色删除圆圈
- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath
return UITableViewCellEditingStyleNone;
- (BOOL)tableView:(UITableView *)tableView shouldIndentWhileEditingRowAtIndexPath:(NSIndexPath *)indexPath
return NO;
当表格视图已经处于编辑模式时,我无法弄清楚如何让滑动手势在右侧显示“删除”,有人可以指出正确的方向吗?
或者,如果有人知道如何让单元格重新排序控件在未处于编辑模式时显示,那也是一个可行的解决方案
干杯
【问题讨论】:
只是想补充一点,我已经对这个问题进行了 很多 研究(我有完全相同的要求),我不相信没有实现你自己的滑动逻辑。我也不相信在非编辑模式下显示重新排序控件而不类似地复制苹果的大部分逻辑是可能的。 你这样做了吗? 【参考方案1】:当用户在给定的行上滑动时,您需要在某处存储一个引用,以便您可以更改 editingStyleForRowAtIndexPath
和 shouldIndentWhileEditingRowAtIndexPath
返回的值。您最好的选择可能是在被刷卡的单元格上使用indexPathForCell
并存储它。然后在上面的两种显示方法中,您需要检查 NSIndexPath
是否相同(我不确定它们是否是相同的指针,或者您是否需要比较节/行值 - 需要测试)。如果匹配,则显示删除按钮。
请注意,您可能需要在 tableView 上调用 reloadData
才能显示效果,而无需再次滚动并返回。
【讨论】:
【参考方案2】:我想知道您现在的发展方向是否会违反人机界面指南,从而导致应用无法获得批准。
我不明白为什么您不能捕捉滑动手势,然后使用它来“取消隐藏”红色删除(停止符号)图标以进行删除确认?
【讨论】:
以上是关于已处于编辑模式时滑动删除的主要内容,如果未能解决你的问题,请参考以下文章
在iOS7中处于编辑模式时更改uitableviewcell“删除”部分的颜色
编辑模式下的 UITableView - 按 Delete 会使我的应用程序崩溃
滑动手势取消编辑模式后 UITableViewCell 刷新不良