[英]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
*的UIView
, UITableView
等方法的FALSE/NO
禁用它的任何类型的事件。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.