IOS 手势UIPinchGestureRecognizer(缩放手势) UIRotationGestureRecognizer(旋转手势)

-(void)addPhotos
{
    //像系统相册展示的时候照片之间会有间距
    int xWdith = 20;
    for(int i = 0; i<4; i++)
    {
        UIImageView *imgView = [[UIImageView alloc] initWithFrame:CGRectMake(xWdith+(xWdith + self.frame.size.width)*i, 0, self.frame.size.width, self.frame.size.height)];
        imgView.backgroundColor = [UIColor orangeColor];
        imgView.image = [UIImage imageNamed:[NSString stringWithFormat:@"%d.jpg",i]];
        imgView.contentMode = UIViewContentModeScaleAspectFit;
       
        //缩放手势
        UIPinchGestureRecognizer *pinchGestureRecognizer = [[UIPinchGestureRecognizer alloc]
                                                            initWithTarget:self
                                                            action:@selector(handlePinch:)];
        [imgView addGestureRecognizer:pinchGestureRecognizer];
        imgView.userInteractionEnabled = YES;
        
        //旋转手势
        UIRotationGestureRecognizer *rotationGestureRecognizer = [[UIRotationGestureRecognizer alloc] initWithTarget:self action:@selector(rotateView:)];
        [imgView addGestureRecognizer:rotationGestureRecognizer];
        [photoBrowse addSubview:imgView];
    }
}


- (void) rotateView:(UIRotationGestureRecognizer *)rotationGestureRecognizer
{
    UIView *view = rotationGestureRecognizer.view;
//    if (rotationGestureRecognizer.state == UIGestureRecognizerStateBegan || rotationGestureRecognizer.state == UIGestureRecognizerStateChanged) {
//        view.transform = CGAffineTransformRotate(view.transform, M_PI/4);
//        NSLog(@"%f",rotationGestureRecognizer.rotation);
//        [rotationGestureRecognizer setRotation:0];
//    }
//
    
    //3d旋转效果
    CALayer *layer = view.layer;
    
    CATransform3D rotationAndPerspectiveTransform = CATransform3DIdentity;
    
    rotationAndPerspectiveTransform.m34 = 1.0 / -500;
    
    rotationAndPerspectiveTransform = CATransform3DRotate(rotationAndPerspectiveTransform,rotationGestureRecognizer.rotation, 0.0f, 1.0f, 0.0f);
    
    layer.transform = rotationAndPerspectiveTransform;
    

}

-(void)handlePinch:(UIPinchGestureRecognizer *)pinchGestureRecognizer
{
    UIImageView *view = (UIImageView *)pinchGestureRecognizer.view;
    //    pinchGestureRecognizer.state == UIGestureRecognizerStateChanged
    if (pinchGestureRecognizer.state == UIGestureRecognizerStateBegan ) {
        view.transform = CGAffineTransformScale(view.transform, pinchGestureRecognizer.scale, pinchGestureRecognizer.scale);
        pinchGestureRecognizer.scale = 2;
    }
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值