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) {
}];
}
答案 0 :(得分:1)
当你将视图旋转180°时(顺便说一下,你应该使用M_PI
代替3.142
),之后视图会颠倒,所以之前留下的是现在正确的,反之亦然
因此,当您第一次向左滑动时,第二次向左滑动(从您的角度来看)实际上被识别为向右滑动,而右滑动实际上是向左滑动,这解释了您观察到的行为
在两个手势(360°旋转)后,您的视图再次处于其原始方向,因此第三个手势的识别再次“正常”。