//設定一個實例變量存儲手指之間的其起始距離 @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 *singleTap = [[UITapGestureRecognizeralloc] initWithTarget:self action:@selector(tap1)]; singleTap.numberOfTapsRequired = 1; singleTap.numberOfTouchesRequired = 1; [self.viewaddGestureRecognizer:singleTap]; UITapGestureRecognizer *doubleTap = [[UITapGestureRecognizeralloc] initWithTarget:self action:@selector(tap2)]; doubleTap.numberOfTapsRequired = 2; doubleTap.numberOfTouchesRequired = 1; [self.viewaddGestureRecognizer:doubleTap]; [singleTap requireGestureRecognizerToFail:doubleTap]; //這句是最主要的 UITapGestureRecognizer *tripleTap = [[UITapGestureRecognizeralloc] initWithTarget:self action:@selector(tap3)]; tripleTap.numberOfTapsRequired = 3; tripleTap.numberOfTouchesRequired = 1; [self.viewaddGestureRecognizer:tripleTap]; [doubleTap requireGestureRecognizerToFail:tripleTap]; UITapGestureRecognizer *quadrupleTap = [[UITapGestureRecognizeralloc] initWithTarget:self action:@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 = @""; }