我正在尝试仅使用UISwipeGestureRecognizer检测到正确的滑动。即使我已将其设置为“正确”,它仍然会在两个方向上注册滑动。我在网上搜索并阅读Apple提供的所有开发页面。我没有找到成功做到这一点的方法。
根据要求:
·H:
IBOutlet UISwipeGestureRecognizer *decade1;
@property (nonatomic, retain) UISwipeGestureRecognizer *decade1;
的.m:
@synthesize decade1;
- (void)scrollViewDidScroll:(UIScrollView *)sender
{
if((page == 4) && (decade1))
{
printf("HELLO!!");
}
}
答案 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函数。