手势 gesture

首先,在屏幕上贴一张图片

    _imageView = [[UIImageViewalloc] initWithFrame:CGRectMake(110,150,100,140)];

    _imageView.image = [UIImageimageNamed:@"10_0.jpg"];

    _imageView.userInteractionEnabled =YES;

    [self.viewaddSubview:_imageView];

轻触手势

    UITapGestureRecognizer* tap = [[UITapGestureRecognizeralloc]initWithTarget:selfaction:@selector(tap:)];

    //点击次数

    tap.numberOfTapsRequired =2;

    tap.numberOfTouchesRequired =2;

    [_imageViewaddGestureRecognizer:tap];

//轻触

- (void)tap:(UITapGestureRecognizer*)tap{

    NSLog(@"轻触");

}


长按手势

    UILongPressGestureRecognizer* longPress = [[UILongPressGestureRecognizeralloc]initWithTarget:selfaction:@selector(longPress:)];

    [_imageViewaddGestureRecognizer:longPress];

//长按

- (void)longPress:(UILongPressGestureRecognizer*)longPress{

    if (longPress.state ==UIGestureRecognizerStateEnded) {

       NSLog(@"长按结束");

    }

}


移动手势

    UIPanGestureRecognizer* pan = [[UIPanGestureRecognizeralloc]initWithTarget:selfaction:@selector(pan:)];

    [_imageViewaddGestureRecognizer:pan];

//移动

- (void)pan:(UIPanGestureRecognizer*)pan{

   CGPoint point = [pan translationInView:self.view];

    NSLog(@"%@",NSStringFromCGPoint(point));

   _imageView.center =CGPointMake(_imageView.center.x + point.x,_imageView.center.y + point.y);

    //偏移量设置为0

    [pan setTranslation:CGPointZeroinView:self.view];

   /*

     x: 0  1  1  1

     y: 0  1  0  0

   

     0,0 1,1 3,2 6,3 这是每一次移动的偏移量,多加了,所以每次都要置0

     */

}


旋转手势

    UIRotationGestureRecognizer* rotation = [[UIRotationGestureRecognizeralloc]initWithTarget:selfaction:@selector(rotation:)];

    [_imageViewaddGestureRecognizer:rotation];

//旋转

- (void)rotation:(UIRotationGestureRecognizer*)rotation{

    _imageView.transform =CGAffineTransformRotate(_imageView.transform, rotation.rotation);

    [rotation setRotation:0];

}


捏合手势

    UIPinchGestureRecognizer* pinch = [[UIPinchGestureRecognizeralloc]initWithTarget:selfaction:@selector(pinch:)];

    [_imageViewaddGestureRecognizer:pinch];

// 捏合

- (void)pinch:(UIPinchGestureRecognizer*)pinch{

    _imageView.bounds =CGRectMake(0,0, _imageView.bounds.size.width * pinch.scale, _imageView.bounds.size.height * pinch.scale);

    [pinchsetScale:1];//这里要置1

}


滑动手势

UISwipeGestureRecognizer* swipe = [[UISwipeGestureRecognizeralloc]initWithTarget:selfaction:@selector(swipe:)];

    //右边方向

    swipe.direction =UISwipeGestureRecognizerDirectionLeft;

    [_imageViewaddGestureRecognizer:swipe];

    

    UISwipeGestureRecognizer* swipe2 = [[UISwipeGestureRecognizeralloc]initWithTarget:selfaction:@selector(swipe:)];

// 左边方向

    swipe2.direction =UISwipeGestureRecognizerDirectionRight;

    [_imageViewaddGestureRecognizer:swipe2];


    UISwipeGestureRecognizer* swipe3 = [[UISwipeGestureRecognizeralloc]initWithTarget:selfaction:@selector(swipe:)];

//上边 方向

    swipe2.direction =UISwipeGestureRecognizerDirectionUp;

    [_imageViewaddGestureRecognizer:swipe3];


    UISwipeGestureRecognizer* swipe4 = [[UISwipeGestureRecognizeralloc]initWithTarget:selfaction:@selector(swipe:)];

// 下边方向

    swipe2.direction =UISwipeGestureRecognizerDirectionDown;

    [_imageViewaddGestureRecognizer:swipe4];

//滑动

- (void)swipe:(UISwipeGestureRecognizer*)swipe{

    if (swipe.direction ==UISwipeGestureRecognizerDirectionLeft) {

        NSLog(@"向左边滑");

    }

    if (swipe.direction ==UISwipeGestureRecognizerDirectionRight) {

        NSLog(@"向右边滑");

    }

    if (swipe.direction ==UISwipeGestureRecognizerDirectionUp) {

        NSLog(@"向上边滑");

    }

    if (swipe.direction ==UISwipeGestureRecognizerDirectionDown) {

        NSLog(@向下边滑");

    }

}


还有四个代理方法


//当触摸开始的时候,触发这个方法

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{

    NSLog(@"touchesBegan");

}

//当开始移动的时候,触发这个方法

- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event{

    UITouch* touch = [touches anyObject];

    CGPoint point = [touch locationInView:self.view];

    NSLog(@"%f, %f", point.x, point.y);

    //1,1 2,1  1,0

}

//当手指离开屏幕的时候,触发这个方法

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event{

    NSLog(@"touchesEnded");

}

//当有别的进程打断当前进程的时候,触发这个方法

- (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event{

    NSLog(@"touchesCancelled");

}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值