我在UISwipeGestureRecognizer上发现了一些不寻常的行为。正确地检测到第一次滑动,但没有检测到第二次滑动。然后第三次滑动是正确的,但第四次不是等等。我有两个滑动手势识别器,一个是左边的,一个是右边的。以下是代码:
.h文件
- (IBAction)handleSwipe:(UISwipeGestureRecognizer *)recognizer;.m文件
- (IBAction)handleSwipe:(UISwipeGestureRecognizer *)recognizer {
if (recognizer.direction == UISwipeGestureRecognizerDirectionLeft) {
NSLog(@"you swiped left");
[self spinSunCounterClockwise];
} else {
NSLog(@"you swiped right");
[self spinSunClockwise];
}
}因此,例如,如果我第一次向左滑动,则调用spinSunCounterClockwise,但如果再次向左滑动,则调用spinSunClockwise。
另一个例子是,如果我第一次向左滑动,就会调用spinSunCounterClockwise。如果我正确地滑动,spinSunCounterClockwise将再次被调用。
有什么帮助吗?
编辑1:纺纱方法之一
-(void) spinSunCounterClockwise
{
[UIView animateWithDuration:2.0f animations:^{
imgSun.transform = CGAffineTransformRotate(imgSun.transform, 3.142);
} completion:^(BOOL finished) {
}];
}发布于 2012-05-17 20:08:31
当您将视图旋转180°(顺便说一句,您应该使用M_PI而不是3.142)时,视图随后是倒过来的,所以以前左转的视图现在是右视图,反之亦然。
所以当你第一次向左滑动时,第二次左击(从你的角度来看)实际上被认为是右击,而右击实际上是左击,这解释了你观察到的行为。
经过两个手势(360°旋转)后,您的视图又回到了原来的方向,因此对第三个手势的识别又是“正常”的。
https://stackoverflow.com/questions/10642383
复制相似问题