试图只检测正确的滑动

时间:2012-07-21 03:31:52

标签: iphone objective-c ios ipad uiswipegesturerecognizer

我正在尝试仅使用UISwipeGestureRecognizer检测到正确的滑动。即使我已将其设置为“正确”,它仍然会在两个方向上注册滑动。我在网上搜索并阅读Apple提供的所有开发页面。我没有找到成功做到这一点的方法。

根据要求:

·H:

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

的.m:

@synthesize decade1;

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

        printf("HELLO!!");
    }
}

1 个答案:

答案 0 :(得分: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 Class Reference

由于您使用的是UIScrollView,因此识别滑动会有点棘手,因为它有自己的识别器。看看How to recognize swipe gesture in UIScrollView

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