iOS缩放手势
為什么80%的碼農都做不了架構師?>>> ??
1,先設置一個屬性用來存放縮放數值,可以在 .h 文件中進行:
#import <UIKit/UIKit.h>@interface ViewController : UIViewController@property (nonatomic) CGFloat lastScale ; @end2,設置縮放手勢代理協議:
#import "ViewController.h"@interface ViewController ()<UIGestureRecognizerDelegate>@property (nonatomic,strong) UIView *viewVC;@end3,添加視圖,并將視圖添加手勢:
@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>? 知識庫
2> EasyBug
3> 系統消息
4> 私信
5> 評論
?
6>我的
?
?
轉載于:https://my.oschina.net/Kuture/blog/690029
總結
- 上一篇: 接收蓝牙广播onReceive中getS
- 下一篇: div根据内容改变大小并且左右居中