我有几个UIScrollView
s 在我的视图控制器中。我想覆盖一个捕获 2 根手指滑动的视图UIPanGestureRecognizer
这不会记录UIScrollView
滑动手势。
当我使用 2 根手指平移手势在内容上放置透明视图时,不会检测到我的点击和 1 根手指滑动。我尝试覆盖pointInside:
返回方法NO
但它不会记录我的两根手指的滑动。
效果类似于 4 指滑动来更改应用程序。
您不需要覆盖视图。
首先实施UIPanGestureRecognizer
它将处理 2 指平移并将其分配给包含以下内容的视图UIScrollView
s
UIPanGestureRecognizer *panGestureRecognizer = [[UIPanGestureRecognizer alloc]
initWithTarget:self
action:@selector(handlePan:)];
panGestureRecognizer.delegate = self;
panGestureRecognizer.minimumNumberOfTouches = 2;
panGestureRecognizer.maximumNumberOfTouches = 2;
[self.view addGestureRecognizer:panGestureRecognizer];
Use UIGestureRecognizerDelegate
处理 2 指平底锅UIScrollView
平移手势
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer
shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
{
return YES;
}
最后你就可以用 2 根手指来操作平底锅了
- (void)handlePan:(UIPanGestureRecognizer *)gestureRecognizer
{
NSLog(@"pan");
}
如果你想停止滚动UIScrollView
当检测到两根手指平移时,您可以禁用和启用UIScrollView
泛识别器
- (void)handlePan:(UIPanGestureRecognizer *)gestureRecognizer
{
if(gestureRecognizer.state == UIGestureRecognizerStateBegan)
{
_scrollView.panGestureRecognizer.enabled = NO;
}
if(gestureRecognizer.state == UIGestureRecognizerStateEnded)
{
_scrollView.panGestureRecognizer.enabled = YES;
}
NSLog(@"pan");
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)