无法覆盖滑动以删除 iOS v > 6.1 的单元格功能
Posted
技术标签:
【中文标题】无法覆盖滑动以删除 iOS v > 6.1 的单元格功能【英文标题】:Unable to override swipe to delete cell functionality for iOS v > 6.1 【发布时间】:2013-11-22 12:49:48 【问题描述】:我们正在开发一个 iPad 应用程序,其中整个 UI 都是使用 Storyboard 文件创建的。
在一个视图控制器场景中,有一个 UITableView 包含一个自定义单元格。
当我滑动到表格单元格时,会出现一个删除按钮。
如何禁用此滑动删除功能。我们在顶部导航栏上有我们自己的编辑按钮,它设置 UITableView 的编辑模式。我们需要禁用滑动删除功能。
这是我们已经尝试过的:
1.覆盖滑动手势方法:
UISwipeGestureRecognizer *gestureR = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleSwipeFrom:)]; [gestureR setDirection:UISwipeGestureRecognizerDirectionRight];//|UISwipeGestureRecognizerDirectionRight)]; [myTableView addGestureRecognizer:gestureR];
我们已经在 myTableView 以及 CustomCell 文件中尝试了这个手势。
2。移除滑动手势方法:
UIGestureRecognizer* swipe = [[self.tableView gestureRecognizers] objectAtIndex:2];
[myTableView removeGestureRecognizer:swipe];
这两个代码块都不适合我们。
此问题仅适用于 ios 7,因为 UITableView 有默认滑动删除。
请为此提出解决方案。
【问题讨论】:
【参考方案1】:(1.) 并不是真正的覆盖。似乎添加多个识别器可能会产生未定义的结果。 (2.) 看起来像一个私有 API hack,所以也不可取。
相反,表格视图的编辑行为是通过覆盖这些方法来控制的:
- tableView:willBeginEditingRowAtIndexPath:
– tableView:editingStyleForRowAtIndexPath:
详情请参阅documentation。
【讨论】:
以上是关于无法覆盖滑动以删除 iOS v > 6.1 的单元格功能的主要内容,如果未能解决你的问题,请参考以下文章
如何在向下滑动 UIWebView 以修复 iOS7 状态栏覆盖问题后更改 UIWebView 背景颜色?
向左滑动删除单元格在 ios 8 中无法正常工作,但在 ios 7 中有效