我正在尝试构建一个 UIView 覆盖它的自定义表格视图。我正在尝试识别常规 UIView 上的特殊手势,特别是需要双击以激活它的平移手势(点击并按住,然后平移)。
我目前有一个自定义 UITableViewController,以及一个自定义 UIView。出于兼容性原因(易于替换现有的 UITableViewControllers),我想尝试将其保留为 UITableViewController 而不是 UIViewController 内的 UITableView。
我可以双击并平移没有问题,但问题是我实际上不能再在表格视图中选择一行。我可以在表格内滚动,但实际选择不起作用。
理想情况下,我希望能够在任何自定义表格视图单元格中保留所有点击、滑动和常规事件(例如,清除或邮箱,您可以在其中向左或向右滑动以激活特定操作)。
我知道我可以从表格视图的方法中获取表格视图单元格indexPathForRowAtPoint:
,但这只会让我选择切换。
我也试图覆盖这样开始的触摸:
-(void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
[self.nextResponder touchesBegan: touches withEvent: event];
}
以及其他相关的事件,并且已经确认 nextResponder 是自定义的 UITableViewController,但是还没有能够做任何事情。
我检查了一堆其他帖子,但没有解决方案对我有用。我尝试过的其他一些事情是:
添加单击手势识别器并将其转发到 UITableViewController
[_containingTableViewController gestureRecognizerShouldBegin: tapGesture];
实现了不同的手势识别器委托
-(BOOL) gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch: (UITouch *)touch{ return ( touch.tapCount >= 2 ); }
以及 YES 和 NO:
-(BOOL) gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
此外,在表格视图上,我尝试过设置canCancelContentTouches
,但两个值都不起作用。
任何帮助将不胜感激,我已经尝试了很多,但就是无法得到它!
如果确实需要完成,我也许可以在 GitHub 上发布完整的项目,但我必须先清理一下。
谢谢!