2

我正在尝试构建一个 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 上发布完整的项目,但我必须先清理一下。

谢谢!

4

1 回答 1

-2

我不明白你的麻烦,所以我不确定它是否能帮助你,但你可以使用 , 等的方法*来setUserInteractionEnabled禁用它上面的任何类型的事件。FALSE/NOUIViewUITableView

于 2013-04-30T07:44:28.813 回答