ios - UISwipeGestureRecognizer 干扰 slider

标签 ios objective-c uigesturerecognizer

我在一个 iOS 应用程序 (Obj-C) 中有一个 View ,它在中心有一个 ImageView ,紧接着在其下方有一个 slider 。 ImageView 显示专辑封面, slider 可用于调整正在播放的轨道位置。

还有一对左右滑动手势识别器。这些用于跳到下一首或上一首轨道。

问题是滑动手势识别器似乎会覆盖用户移动 slider 拇指。 在我的手势识别器代码中,我检查触摸点是否在 ImageView 内,但它仍然阻止 slider 移动。 (拇指会移动,但当您移开手指时会跳回到原来的位置)。

这是我用来拒绝不在 ImageView 内的手势的代码。

- (IBAction)swipeLeftGestureAction:(UISwipeGestureRecognizer *)sender {
    // Get the location of the gesture.
    CGPoint tapPoint = [sender locationInView:_artworkImageView];

    // Make sure tap was INSIDE the artwork image frame.
    if( (tapPoint.x <0)
       || (tapPoint.y < 0 )
       || (tapPoint.x > _artworkImageView.frame.size.width)
       || (tapPoint.y>_artworkImageView.frame.size.height))
    {
        NSLog(@"Outside!");
        return;
    }
    NSLog(@"Swipe LEFT");
    [_mediaController skipNext];
}

所以我的问题是,如何限制手势仅在滑动 ImageView 时起作用?

最佳答案

尝试将限制手势区域的代码放入 gestureRecognizer:shouldReceiveTouch: 并返回 NO 以防您不希望手势接收此触摸。它应该防止手势过度进行 slider 交互。

关于ios - UISwipeGestureRecognizer 干扰 slider ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30642487/

相关文章:

android - PDF417-iOS Web应用程序

Ios Swift 在非线性路径中为 View 设置动画

c++ - 我如何获得 argv[0]?

ios - GestureRecognizer 不响应点击

ios - dequeueReusableCellWithIdentifier 从不返回 nil

objective-c - Objective-C : Drag and Drop on UIScrollView

javascript - 在没有释放 JSValue 的情况下,如何使用 JSManagedValue 来避免引用循环?

objective-c - 如何在 NSOperationQueues 上自动安装 NSExceptionHandlers?

ios - Swift 以编程方式启动 UILongPressGesture

ios - 手势识别器从不触发