繁体   English   中英

从UITableView顶部的UIView传递触摸事件

[英]Pass touch events from UIView on top of UITableView

我试图建立一个UIView覆盖它的自定义表视图。 我正在尝试识别常规UIView上的特殊手势,特别是需要双击以激活它的平移手势(点住并按住,然后平移)。

我目前有一个自定义UITableViewController,以及一个自定义UIView。 出于兼容性原因,我想尝试将其保留为UITableViewController而不是UIViewController中的UITableView(轻松替换现有的UITableViewControllers)。

我可以双击并平移没有问题,但是问题是我不再能够在表视图中实际选择一行。 我可以在表格中滚动,但实际选择不起作用。

理想情况下,我希望能够在所有自定义表格视图单元格中保留所有点击,滑动和常规事件(例如,“清除”或“邮箱”,您可以在其中向左或向右滑动以激活特定操作)。

我知道我可以从表视图的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 ); } 

    以及是和否:

     -(BOOL) gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer 

另外,在表格视图上,我尝试设置canCancelContentTouches但是没有一个值起作用。

任何帮助将不胜感激,我已经尝试了很多,但就是不明白!

如果确实需要完成整个项目,我可以在GitHub上发布整个项目,但是我必须先清理一下。

谢谢!

我不明白您的麻烦,所以不确定是否可以帮到您,但是您可以使用setUserInteractionEnabled *的UIViewUITableView等方法的FALSE/NO禁用它的任何类型的事件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM