09-手势识别(拖动,旋转,捏合)
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;
}
手势识别(拖动,旋转,捏合)
转载本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
有趣的CSS - 旋转的金币
今天分享的是一个旋转的金币,适用于游戏网站,会员币等场景。
css 旋转的金币 动效 ux 用户体验 -
Swift基础--手势识别(双击、捏、旋转、拖动、划动、长按)
注意:滑动手势和拖手势冲突,两个选一个测试,至于测试的效果自己新建一个工程来把代码加入就行
图片放大 保存数据 长按手势 数组 ide -
【转】iOS手势识别的详细使用(拖动,缩放,旋转,点击,手势依赖,自定义手势) -- 不错不错ide 缩放 #import 回调方法 手势识别