1. 程式人生 > >iOS 輕擊、觸摸和手勢的檢測

iOS 輕擊、觸摸和手勢的檢測

變量存儲 實例 pin select scale sele rms nbsp stat

一、檢測捏合手勢( 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: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 = @""; }

iOS 輕擊、觸摸和手勢的檢測