UISwipeGestureRecognizer 向左滑动手指向上
UISwipeGestureRecognizer swipe left and finger up
我正在使用 UISwipeGestureRecogizer
通过 UISwipeGestureRecognizerDirectionRight
和 UISwipeGestureRecognizerDirectionLeft
滑动 left
和 right
,它的工作完全正常,但默认滑动是太敏感了,比敲一下多一点点。
有什么方法可以让它像 scrollView
工作时它的 paging enable
属性 是真的,直到用户不抬起手指,它的工作不工作。
如果视图不随着手指的移动而移动就好了,并且只有在执行 left
或 right
手势并抬起手指时才有效。谢谢。
A UISwipeGestureRecognizer
不会为您提供任何更改灵敏度或滑动的任何其他方面的选项。要获得对滑动的更多控制,您可以使用以下之一:
下面是 UIPanGestureRecognizer
可以尝试的东西:
- (void)handleGesture:(UIPanGestureRecognizer *)gestureRecognizer{
CGPoint velocity = [gestureRecognizer velocityInView:yourView];
if(velocity.x > 0){
//Right gesture
}else{
//Left gesture
}
}
所有UIViews
继承自UIResponder
,因此可以使用touchesBegan
、touchesMoved
和touchesEnded
方法来计算触摸。尝试这样的事情:
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
UITouch *touch = [touches anyObject];
start = [touch locationInView:self.view];
}
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event{
UITouch *touch = [touches anyObject];
CGPoint end = [touch locationInView:self.view];
//Compare start and end points here.
}
我正在使用 UISwipeGestureRecogizer
通过 UISwipeGestureRecognizerDirectionRight
和 UISwipeGestureRecognizerDirectionLeft
滑动 left
和 right
,它的工作完全正常,但默认滑动是太敏感了,比敲一下多一点点。
有什么方法可以让它像 scrollView
工作时它的 paging enable
属性 是真的,直到用户不抬起手指,它的工作不工作。
如果视图不随着手指的移动而移动就好了,并且只有在执行 left
或 right
手势并抬起手指时才有效。谢谢。
A UISwipeGestureRecognizer
不会为您提供任何更改灵敏度或滑动的任何其他方面的选项。要获得对滑动的更多控制,您可以使用以下之一:
下面是 UIPanGestureRecognizer
可以尝试的东西:
- (void)handleGesture:(UIPanGestureRecognizer *)gestureRecognizer{
CGPoint velocity = [gestureRecognizer velocityInView:yourView];
if(velocity.x > 0){
//Right gesture
}else{
//Left gesture
}
}
所有UIViews
继承自UIResponder
,因此可以使用touchesBegan
、touchesMoved
和touchesEnded
方法来计算触摸。尝试这样的事情:
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
UITouch *touch = [touches anyObject];
start = [touch locationInView:self.view];
}
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event{
UITouch *touch = [touches anyObject];
CGPoint end = [touch locationInView:self.view];
//Compare start and end points here.
}