我只想用UISwipeGestureRecognizer来检测右击。尽管我已经将它设置为“正确”,但它仍然在两个方向注册滑动。我已经在网上搜索并阅读了苹果提供的所有开发页面。我看不到成功做到这一点的方法。
根据要求:
.h:
IBOutlet UISwipeGestureRecognizer *decade1;
@property (nonatomic, retain) UISwipeGestureRecognizer *decade1;.m:
@synthesize decade1;
- (void)scrollViewDidScroll:(UIScrollView *)sender
{
if((page == 4) && (decade1))
{
printf("HELLO!!");
}
}发布于 2012-07-21 12:07:49
像这样创建手势识别器,并将其添加到您想要的视图中:
UISwipeGestureRecognizer *rightSwipeGestureRecognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(rightSwipe:)];
[rightSwipeGestureRecognizer setDirection:UISwipeGestureRecognizerDirectionRight];
[self.view addGestureRecognizer:rightSwipeGestureRecognizer];定义一个处理卷帘的方法:
-(void)rightSwipe:(UISwipeGestureRecognizer*)recognizer {
NSLog(@"Right swipe");}
如果仍然不起作用,请尝试不将识别器添加到视图中,并查看是否有其他处于活动状态的识别器。
编辑(在看到代码后):
您在scrollViewDidScroll方法中有自己的逻辑,这就是为什么它可以对任何类型的卷帘(实际上是滚动)做出反应。我怀疑你的手势识别器是否能在这种设置中工作。
手势识别器需要添加到视图,然后您需要连接一个方法,该方法将在识别手势时运行。请记住,如果您将手势识别器的方向设置为right,则该方法应仅在右键滑动后调用。我会再次复习这门课,以充分理解它是如何工作的。UIGestureRecognizer Class Reference
由于您使用的是UIScrollView,因此识别滑动会有点棘手,因为它有自己的识别器。看一看How to recognize swipe gesture in UIScrollView
我还建议保持简单,并以编程方式添加选择器(很可能您甚至不需要为它声明实例变量,因为对象将返回给识别器上的@ UISwipeGestureRecognizer函数。
https://stackoverflow.com/questions/11589221
复制相似问题