iOS手势类的简单使用

    // 单击
    UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(signalTapAction:)];
    // 需要触碰的次数
    singleTap.numberOfTouchesRequired = 1;
    // 需要点击的次数
    singleTap.numberOfTapsRequired = 1;
    [self.view addGestureRecognizer:singleTap];
    
    // 双击
    UITapGestureRecognizer *doubleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(doubleTapAction:)];
    doubleTap.numberOfTouchesRequired = 1;
    doubleTap.numberOfTapsRequired = 2;
    [self.view addGestureRecognizer:doubleTap];
    
    // 长按
    UILongPressGestureRecognizer *longTap = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(longTapAction:)];
    longTap.numberOfTouchesRequired = 1;
    // 最短按压持续时间
    longTap.minimumPressDuration = 0.5;
    [self.view addGestureRecognizer:longTap];
    
    // 拖动
    UIPanGestureRecognizer *panGesture = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(panGestureAction:)];
    // 最少触碰次数
    panGesture.minimumNumberOfTouches = 1;
    // 最多触碰次数
    panGesture.maximumNumberOfTouches = 1;
    [self.view addGestureRecognizer:panGesture];
    
    // 拦截双击时的单击事件。只有双击失效才算做单击
    [singleTap requireGestureRecognizerToFail:doubleTap];


@selector

- (void)signalTapAction:(UITapGestureRecognizer *)tap
{
    NSLog(@"单击");
}

- (void)doubleTapAction:(UITapGestureRecognizer *)tap
{
    NSLog(@"双击");
}

- (void)longTapAction:(UITapGestureRecognizer *)tap
{
    if (tap.state == UIGestureRecognizerStateEnded || tap.state == UIGestureRecognizerStateCancelled) {
        NSLog(@"长按");
    }
}

- (void)panGestureAction:(UIPanGestureRecognizer *)panGesture
{
    CGPoint currentPoint = [panGesture locationInView:self.view];
    switch (panGesture.state) {
        case UIGestureRecognizerStateBegan:
            NSLog(@"PanBegan(x=%f,y=%f)",currentPoint.x,currentPoint.y);
            break;
        case UIGestureRecognizerStateChanged:
            NSLog(@"PanChanged(x=%f,y=%f)",currentPoint.x,currentPoint.y);
            break;
        case UIGestureRecognizerStateEnded:
            NSLog(@"PanEnd(x=%f,y=%f)",currentPoint.x,currentPoint.y);
            break;
        default:
            break;
    }
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值