Csa*_*abi 22 xcode cocoa-touch objective-c gesture uigesturerecognizer
我试图抓住一个手势,但它不起作用.这是我的代码:
UISwipeGestureRecognizer *recognizer;
recognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleSwipeFrom:)];
[recognizer setDirection:(UISwipeGestureRecognizerDirectionRight | UISwipeGestureRecognizerDirectionLeft)];
[[self view] addGestureRecognizer:recognizer];
[recognizer release];
Run Code Online (Sandbox Code Playgroud)
和
-(void)handleSwipeFrom:(UISwipeGestureRecognizer *)recognizer {
NSLog(@"get gesture");
if (recognizer.direction == UISwipeGestureRecognizerDirectionRight) {
NSLog(@"get gesture right");
}
if (recognizer.direction == UISwipeGestureRecognizerDirectionLeft) {
NSLog(@"get gesture Left");
}
}
Run Code Online (Sandbox Code Playgroud)
它总是得到一个手势,但不认识方向.我也试过if(recognizer.direction){NSLog(@"get gesture");}
,它也有效,所以我不明白我犯了哪个错误.
谢谢你的帮助.
pau*_*ley 47
你没有UISwipeGestureRecognizer
正确使用.它的方向始终是你设定的方向(在这种情况下UISwipeGestureRecognizerDirectionRight | UISwipeGestureRecognizerDirectionLeft
,或3).
如果您想要左右捕捉可以区分的滑动,则必须为每个滑动设置单独的识别器.Apple在他们的SimpleGestureRecognizers示例中执行此操作.
您需要做的只是更改添加手势识别器的代码.
UISwipeGestureRecognizer *leftRecognizer;
leftRecognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleSwipeFrom:)];
[leftRecognizer setDirection: UISwipeGestureRecognizerDirectionLeft];
[[self view] addGestureRecognizer:leftRecognizer];
[leftRecognizer release];
UISwipeGestureRecognizer *rightRecognizer;
rightRecognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleSwipeFrom:)];
[rightRecognizer setDirection: UISwipeGestureRecognizerDirectionRight];
[[self view] addGestureRecognizer:rightRecognizer];
[rightRecognizer release];
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
14688 次 |
最近记录: |