gpt4 book ai didi

iphone - UISwipeGestureRecognizer 的异常行为

转载 作者:行者123 更新时间:2023-11-29 04:39:14 26 4
gpt4 key购买 nike

我在使用 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) {

}];
}

最佳答案

当你将 View 旋转 180°(顺便说一句,你应该使用 M_PI 而不是 3.142)时, View 会颠倒过来,所以之前剩下的是现在是对的,反之亦然。

因此,当您第一次向左滑动时,第二次向左滑动(从您的角度来看)实际上被识别为向右滑动,而向右滑动实际上是向左滑动,这解释了您所观察到的行为.

两个手势(360° 旋转)后,您的 View 再次处于原始方向,因此第三个手势的识别再次“正常”。

关于iphone - UISwipeGestureRecognizer 的异常行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10642383/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com