iOS缩放手势

1,先设置一个属性用来存放缩放数值,可以在 .h 文件中进行:

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController

@property (nonatomic)   CGFloat lastScale ;
@end

2,设置缩放手势代理协议:

#import "ViewController.h"

@interface ViewController ()<UIGestureRecognizerDelegate>

@property (nonatomic,strong) UIView *viewVC;

@end

3,添加视图,并将视图添加手势:

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    
    UIView *viewVC = [[UIView alloc]initWithFrame:CGRectMake(0, 100, [UIScreen mainScreen].bounds.size.width,[UIScreen mainScreen].bounds.size.height - 300)];
    self.viewVC = viewVC;
    
    UIImageView *imgView = [[UIImageView alloc]initWithFrame:CGRectMake(0, 100, [UIScreen mainScreen].bounds.size.width,[UIScreen mainScreen].bounds.size.height - 300)];
    imgView.image = [UIImage imageNamed:@"Kuture"];
    
    UIPinchGestureRecognizer *pinchGes = [[UIPinchGestureRecognizer alloc]initWithTarget:self action:@selector(scaGesture:)];
    [pinchGes setDelegate:self];
    [self.viewVC addGestureRecognizer:pinchGes];
    
    
    [self.viewVC addSubview:imgView];
    [self.view addSubview:self.viewVC];
}

4,设置缩放手势的方法实现:

-(void)scaGesture:(id)sender {
    
    [self.view bringSubviewToFront:[(UIPinchGestureRecognizer*)sender view]];
        
    if([(UIPinchGestureRecognizer*)sender state] == UIGestureRecognizerStateEnded) {
        
        _lastScale = 1.0;
        
        return;
        
    }
    
    
    
    CGFloat scale = 1.0 - (_lastScale - [(UIPinchGestureRecognizer*)sender scale]);
    
    CGAffineTransform currentTransform = [(UIPinchGestureRecognizer*)sender view].transform;
    
    CGAffineTransform newTransform = CGAffineTransformScale(currentTransform, scale, scale);
    
    [[(UIPinchGestureRecognizer*)sender view]setTransform:newTransform];
    
//    NSLog(@"Scale:%f LastScale:%f ViewX:%f ViewY:%f ViewW:%f VeiwH:%f",scale,_lastScale,self.viewVC.bounds.origin.x,self.viewVC.bounds.origin.y,self.viewVC.bounds.size.width,self.viewVC.bounds.size.height);
    
    _lastScale = [(UIPinchGestureRecognizer*)sender scale];
    
}

@end

*****测试所用图标*****

1>  知识库

132837_eR4b_2728740.png

2> EasyBug

132926_zILV_2728740.png

3> 系统消息

133258_DXsR_2728740.png

4> 私信

133202_0xWn_2728740.png

5> 评论

133323_4viu_2728740.png

 

6>我的

133453_HKzU_2728740.png

 

 

转载于:https://my.oschina.net/Kuture/blog/690029

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值