一、检测捏合手势( UIPinchGestureRecognizer):
//设定一个实例变量存储手指之间的其起始距离
@property (assign, nonatomic) CGFloat initialFontSize;//调用:UIPinchGestureRecognizer *pinch = [[UIPinchGestureRecognizeralloc]initWithTarget:selfaction:@selector(doPinch:)];[self.viewaddGestureRecognizer:pinch];//实现方法:
- (void)doPinch:(UIPinchGestureRecognizer *)pinch {if (pinch.state == UIGestureRecognizerStateBegan) {initialFontSize = label.font.pointSize;//开始时的} else {label.font = [label.fontfontWithSize:initialFontSize * pinch.scale];}
}
二、 检测多次轻击(UITapGestureRecognizer):
//调用:
UITapGestureRecognizer *singleTap =[[UITapGestureRecognizeralloc] initWithTarget:selfaction:@selector(tap1)];singleTap.numberOfTapsRequired = 1;singleTap.numberOfTouchesRequired = 1;[self.viewaddGestureRecognizer:singleTap];UITapGestureRecognizer *doubleTap =[[UITapGestureRecognizeralloc] initWithTarget:selfaction:@selector(tap2)];doubleTap.numberOfTapsRequired = 2;doubleTap.numberOfTouchesRequired = 1;[self.viewaddGestureRecognizer:doubleTap];[singleTap requireGestureRecognizerToFail:doubleTap]; //这句是最主要的
UITapGestureRecognizer *tripleTap =[[UITapGestureRecognizeralloc] initWithTarget:selfaction:@selector(tap3)];tripleTap.numberOfTapsRequired = 3;tripleTap.numberOfTouchesRequired = 1;[self.viewaddGestureRecognizer:tripleTap];[doubleTap requireGestureRecognizerToFail:tripleTap];UITapGestureRecognizer *quadrupleTap =[[UITapGestureRecognizeralloc] initWithTarget:selfaction:@selector(tap4)];quadrupleTap.numberOfTapsRequired = 4;quadrupleTap.numberOfTouchesRequired = 1;[self.viewaddGestureRecognizer:quadrupleTap];[tripleTap requireGestureRecognizerToFail:quadrupleTap];//不同点击触发的事件:
- (void)tap1 {singleLabel.text = @"Single Tap Detected";[selfperformSelector:@selector(eraseMe:)withObject:singleLabelafterDelay:1.6f];
}
- (void)tap2 {doubleLabel.text = @"Double Tap Detected";[selfperformSelector:@selector(eraseMe:)withObject:doubleLabelafterDelay:1.6f];
}
- (void)tap3 {tripleLabel.text = @"Triple Tap Detected";[selfperformSelector:@selector(eraseMe:)withObject:tripleLabelafterDelay:1.6f];
}
- (void)tap4 {quadrupleLabel.text = @"Quadruple Tap Detected";[selfperformSelector:@selector(eraseMe:)withObject:quadrupleLabelafterDelay:1.6f];
}//清除内容
- (void)eraseMe:(UILabel *)label {label.text = @"";
}