现在我的UIPanGestureRecognizer识别每个平移,这是很棒且必要的,但是当我使用它作为滑动手势来增加和减少变量的值时,在方法中我只想经常动作.如果每次检测到它增加1,则值会上升得太快.
有没有办法做一些事情,每10个像素的平移做这个,或类似的东西?
我想知道是否有一种简单的方法来设置最小滑动长度,即用户需要滑动的像素长度,以便将手势识别为滑动.
我注意到普通滑动可能反应迟钝(例如,与在照片库中滑动照片相比).
这是正常的方法,但我想减少滑动所需的长度:
- (void)viewDidLoad
{
// SWIPING GESTURES:
UISwipeGestureRecognizer *swipeLeftRecognizer;
swipeLeftRecognizer=[[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(foundLeftSwipe:)];
swipeLeftRecognizer.direction=UISwipeGestureRecognizerDirectionLeft;
//swipeRecognizer.numberOfTouchesRequired=1;
[self.view addGestureRecognizer:swipeLeftRecognizer];
[swipeLeftRecognizer release];
UISwipeGestureRecognizer *swipeRightRecognizer;
swipeRightRecognizer=[[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(foundRightSwipe:)];
swipeRightRecognizer.direction=UISwipeGestureRecognizerDirectionRight;
//swipeRecognizer.numberOfTouchesRequired=1;
[self.view addGestureRecognizer:swipeRightRecognizer];
[swipeRightRecognizer release];
[super viewDidLoad];
}
#pragma mark -
#pragma mark Swipes
- (void)foundLeftSwipe:(UISwipeGestureRecognizer *)recognizer {
// do something
}
- (void)foundRightSwipe:(UISwipeGestureRecognizer *)recognizer {
// do something
}
Run Code Online (Sandbox Code Playgroud)
我记得有一种方法可以获得像素的起始位置和结束位置然后比较两者,但只是想知道是否有更简单的方法,即只需在代码中定义一个最小所需滑动长度的值这里.
编辑:
这是我记录整个事情的方式:
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch *touch = [touches anyObject];
gestureStartPoint = [touch locationInView:self.view];
}
- (void)touchesMoved:(NSSet *)touches …Run Code Online (Sandbox Code Playgroud)