1、判断捕获手势的视图,可屏蔽父视图或者子视图的手势响应
///屏蔽父视图手势
- (BOOL)gestureRecognizerShouldBegin:(UITapGestureRecognizer *)sender//捕获点击手势
{
//该方法识别到的点击次数一直都是1,具体的点击次数在手势响应方法中判断
CGPoint touchPoint = [sender locationInView:sender.view];
if(sender.view.tag == 100 )//如果捕获到手势的view的tag为100
{
CGRect imageFrame = self.moveView.frame;
if (CGRectContainsPoint(imageFrame, touchPoint)) {//如果捕获到的点在imageFrame框架内
return NO;//单击手势无效,无法继续调用到手势响应方法
}
}
return YES;//单击手势有效,无法继续调用到手势响应方法
}
2、长按手势:在长按手势的开始和结束(手势放开)都会触发该手势的响应方法,所以必须在手势响应方法中做手势的状态判断。
- (void)handleLongPress:(UILongPressGestureRecognizer *)sender
{
//长按手势,开始和结束都会触发这个方法,所以要区别手势状态,做不同的处理
if (sender.state == UIGestureRecognizerStateBegan) {
NSLog(@"长按手势开始");
//把处理方法放在这里
}else if(sender.state == UIGestureRecognizerStateEnded)
{
NSLog(@"长按手势结束");
}
}