手势识别器(UIImageView)

//1** UIImageView

    UIImage *image=[UIImageimageNamed:@"a944621500d792503e95f7077dec376b.jpg"];

   self.imageView=[[UIImageViewalloc] initWithImage:image];

   self.imageView.frame=CGRectMake(50,100, 200, 200);

    [self.viewaddSubview:self.imageView];

    [_imageView release];

    //把图片的用户交互打开,它默认是关闭的,此外还有一个控件是label

    self.imageView.userInteractionEnabled=YES;


//1.点击

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

//设置点击几次才会触发方法

    tap.numberOfTapsRequired=2;

//设置几根手指进行点击

    tap.numberOfTouchesRequired=2;

//将手势添加到对应的图片上

    [self.imageViewaddGestureRecognizer:tap];

    [taprelease];

#pragma mark 点击的方法

-(void)tapAction:(UITapGestureRecognizer *)tap

{

    NSLog(@"测试点击手势");

   self.imageView.image=[UIImageimageNamed:@"a5bcfced872ff6cf7661b9005ba57922.jpeg"];

}

//2.长按(常用)

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

    //设置长按触发的最小时间

    longPress.minimumPressDuration=2;

    //允许用户手指在长按过程中允许移动的距离

    longPress.allowableMovement=200;

    //把手势添加到图片上

    [self.imageViewaddGestureRecognizer:longPress];

    [longPressrelease];

#pragma mark 长按对应的响应方法

-(void)longPressAction:(UILongPressGestureRecognizer *)longPress

{  //长按的状态

    //长按弹一个UIAlertView

   if (self.alertview ==nil) {

        self.alertview =[[UIAlertViewalloc] initWithTitle:@"hello world"message:@"*_*"delegate:selfcancelButtonTitle:@"YES"otherButtonTitles:@"NO",nil];

        [self.alertviewshow];

        [self.alertviewrelease];

}else{

        [self.alertviewshow];

    }

}



//3.旋转

    //创建一个旋转的手势

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

    //把手势放到对应的图片上

    [self.imageViewaddGestureRecognizer:rotation];

   //释放

    [rotationrelease];

#pragma mark 旋转对应的响应方法

-(void)rotationAction:(UIRotationGestureRecognizer *)rotation

{

    //可以通过手势获取手势添加的视图是哪一个

   UIImageView *imageView=(UIImageView *)rotation.view;

    //进行旋转的操作

    //通过视图的transform属性,让视图进行旋转

  //imageView.transform=CGAffineTransformMakeRotation(rotation.rotation);

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

    rotation.rotation=0;

  }


//4. 捏合

   //创建

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

    //添加到图片上

    [self.imageViewaddGestureRecognizer:pinch];

   //释放

    [pinchrelease];

#pragma mark捏合对应的响应方法(缩放图片)

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

    //通过手势找视图

   UIImageView *imageView=(UIImageView *)pinch.view;

    //通过transform改变图片的尺寸

    //第一个参数是原来图片的大小,第二和第三个参数是相对于x,y轴的缩放比例

 imageView.transform=CGAffineTransformScale(imageView.transform, pinch.scale, pinch.scale);

    //为了防止手势的变化让图片直接消失

    pinch.scale=1;

}



 //5.拖拽

   //创建

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

    [self.imageViewaddGestureRecognizer:pan];

    [panrelease];

#pragma mark 拖拽对应的响应方法 ( 通过拖拽手势 , 让视图随着手势的移动而 yid)

-(void)panAction:(UIPanGestureRecognizer *)pan

{

    //通过手势找视图

   UIImageView *imageView=(UIImageView *)pan.view;

    //通过手势获得经过的点

   CGPoint p=[pan translationInView:imageView];

    //设置移动的位置

 imageView.transform=CGAffineTransformTranslate(imageView.transform, p.x, p.y);

    //为了防止手势在操作的时候视图消失

    [pansetTranslation:CGPointZeroinView:imageView];

}




//6.轻扫

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

    [self.imageViewaddGestureRecognizer:swipe];

    [swiperelease];

    //轻扫的方向,向右

    swipe.direction =UISwipeGestureRecognizerDirectionRight;

#pragma mark 轻扫的对应方法

-(void)swipeAction:(UISwipeGestureRecognizer *)swipe

{

    if (swipe.direction ==UISwipeGestureRecognizerDirectionRight) {

       NSLog(@"向右");

    }

   }



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值