0

我试图只用 UISwipeGestureRecognizer 检测右滑动。即使我已将其设置为“右”,它仍会在两个方向上记录滑动。我在网上搜索并阅读了 Apple 提供的所有开发页面。我没有看到成功做到这一点的方法。

按照要求:

。H:

IBOutlet UISwipeGestureRecognizer *decade1;
@property (nonatomic, retain) UISwipeGestureRecognizer *decade1;

米:

@synthesize decade1;

- (void)scrollViewDidScroll:(UIScrollView *)sender 
{
    if((page == 4) && (decade1))
{

        printf("HELLO!!");
    }
}
4

1 回答 1

2

像这样创建手势识别器,并将其添加到您想要的视图中:

UISwipeGestureRecognizer *rightSwipeGestureRecognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(rightSwipe:)];
[rightSwipeGestureRecognizer setDirection:UISwipeGestureRecognizerDirectionRight];
[self.view addGestureRecognizer:rightSwipeGestureRecognizer];

定义一个方法来处理滑动:

-(void)rightSwipe:(UISwipeGestureRecognizer*)recognizer {

    NSLog(@"Right swipe");

}

如果它仍然不起作用,请尝试不将识别器添加到视图中,并查看是否有另一个识别器处于活动状态..

编辑(看到你的代码后):

您在 scrollViewDidScroll 方法中有您的逻辑,这就是它对任何类型的滑动(实际上是滚动)做出反应的原因。我怀疑您的手势识别器甚至可以在这种类型的设置中使用。

手势识别器需要添加到视图中,然后您需要连接一个在识别手势时将运行的方法。请记住,如果将手势识别器的方向设置为向右,则该方法仅应在向右滑动后调用。我会再次复习这门课,以充分了解它是如何工作的。UIGestureRecognizer 类参考

由于您使用的是 UIScrollView,因此识别滑动有点棘手,因为它有自己的识别器。看看如何识别 UIScrollView 中的滑动手势

我还建议保持简单,并以编程方式添加 UISwipeGestureRecognizer(很可能您甚至不需要为其声明实例变量,因为该对象将返回到识别器上的 @selector 函数。

于 2012-07-21T04:07:49.027 回答