【问题标题】:Swipe Gesture Recogniser not triggering?滑动手势识别器未触发?
【发布时间】:2015-07-23 23:56:21
【问题描述】:

我有一个页面视图控制器,其中包含五个显示的视图控制器。

我已尝试添加这些滑动手势,但没有被调用?

   UISwipeGestureRecognizer *swipeGestureRight = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleRightSwipe:)];
swipeGestureRight.numberOfTouchesRequired = 1;
swipeGestureRight.direction = (UISwipeGestureRecognizerDirectionRight);
[self.scrollView addGestureRecognizer:swipeGestureRight];

UISwipeGestureRecognizer *swipeGestureLeft = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleLeftSwipe:)];
swipeGestureLeft.numberOfTouchesRequired = 1;
swipeGestureLeft.direction = (UISwipeGestureRecognizerDirectionLeft);
[self.scrollView addGestureRecognizer:swipeGestureLeft];

为什么没有触发这些,我该怎么办?我的目标是检测用户滑动页面视图控制器的方向。

【问题讨论】:

  • 您添加的视图是否启用了用户交互?

标签: ios objective-c xcode swipe


【解决方案1】:

试试这个

  • 设置你的UIGestureRecognizer的代表和

  • 实现shouldRecognizeSimultaneouslyWithGestureRecognizer:

    -(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer{
    return YES;
    }
    
  • 实现shouldReceiveTouch:

    - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
    {
     return YES;
    }
    

希望这会有所帮助。如果您仍然遇到此问题,请告诉我。

【讨论】:

  • 嗨,感谢您的回答,但我究竟在哪里实现这两种方法?我只有 1 个页面视图控制器类,我像这样设置委托和数据源self.delegate = self; self.dataSource = self; 我尝试在我的视图上方添加它们并加载方法,但我的方法仍然没有调用?
  • @CoolKatStudios :把它放在任何地方,但在同一个文件中。如果仍然无法正常工作,那么还有其他问题......
【解决方案2】:

为self.view添加手势

[self.view addGestureRecognizer:swipeGestureRight];

我希望它会起作用

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-04
    • 2017-06-24
    • 1970-01-01
    相关资源
    最近更新 更多