您的位置:首页 > 移动开发 > IOS开发

iOS 手势识别(拖动、旋转、捏合)

2017-08-17 17:08 423 查看
1.平移
UIPanGestureRecognizer *pan = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(pan:)];
添加手势
[self.imageV addGestureRecognizer:pan];
实现手势方法
手指在屏幕上移动进调用
- (void)pan:(UIPanGestureRecognizer *)pan{
获取当前手指移动的偏移量
CGPoint transP =  [pan translationInView:self.imageV];
NSLog(@"%@",NSStringFromCGPoint(transP));
Make它会清空上一次的形变.
self.imageV.transform = CGAffineTransformMakeTranslation(transP.x, transP.y);

self.imageV.transform = CGAffineTransformTranslate(self.imageV.transform,transP.x, transP.y);
复位,相对于上一次.
[pan  setTranslation:CGPointZero inView:self.imageV];
}

2.旋转

添加旋转手势
UIRotationGestureRecognizer *rotation = [[UIRotationGestureRecognizer alloc] initWithTarget:self action:@selector(rotation:)];
设置代理,设置代理的目的就让它能够同时支持旋转跟缩放
rotation.delegate = self;
添加手势
[self.imageV addGestureRecognizer:rotation];

当旋转时调用
- (void)rotation:(UIRotationGestureRecognizer *)rotation{
旋转也是相对于上一次
self.imageV.transform = CGAffineTransformRotate(self.imageV.transform,rotation.rotation);
设置代理,设置代理的目的就让它能够同时支持旋转跟缩放
rotation.delegate = self;
也要做复位操作
rotation.rotation = 0;
}

3.添加缩放手势
添加缩放手势
UIPinchGestureRecognizer *pinch = [[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(pinch:)];

[self.imageV addGestureRecognizer:pinch];

缩放手势时调用
-(void)pinch:(UIPinchGestureRecognizer *)pinch{
平移也是相对于上一次
self.imageV.transform = CGAffineTransformScale(self.imageV.transform, pinch.scale,
pinch.scale);
复位
pinch.scale = 1;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ios 手势识别
相关文章推荐