我正在使用UIPanGestureRecognizer来检测和计算手指的移动。我的问题是触发了以下事件序列:
StateBegan StateChanged StateChanged StateChanged StateEnded
但有时只有这个序列用于相同的用户交互
StateChanged StateChanged StateChanged
- (void)viewDidLoad
{
UIPanGestureRecognizer *panRecognizer = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(panHandler:)];
panRecognizer.minimumNumberOfTouches = 1;
panRecognizer.maximumNumberOfTouches = 1;
[panRecognizer setDelaysTouchesBegan:NO];
[panRecognizer setDelaysTouchesEnded:NO];
[self.view addGestureRecognizer:panRecognizer];
}
-(void)panHandler:(UIPanGestureRecognizer *)recognizer {
//gesture hanlding here
if(recognizer.state == UIGestureRecognizerStateEnded){
// Do smth here
}
}
答案 0 :(得分:1)
因为它可以取消。 来自文档:
Possible ----> Began ----> [Changed] ----> Cancelled
Possible ----> Began ----> [Changed] ----> Ended