UIGestureRecognizer手势综合使用
来源:互联网 发布:高仿二代身份证 淘宝 编辑:程序博客网 时间:2024/06/16 03:03
手势分为:单击、轻扫、长按、旋转、拖拽、捏合六种,下面就一一给大家说说这六种手势的一些使用方法。
准备工作:先创建一个UIImageView(创建的对象叫做:imageView),方便下面手势的操作。
一、单击手势:UITapGestureRecognizer
- numberOfTapsRequired //点击多少次调用单击的方法
- numberOfTouchesRequired //多少个手指单击才会调用单击的方法
以单击手势为例子,以下手势都按这个套路出牌。
步骤一:创建对应的手势
步骤二:设置手势的属性
步骤三:把手势加入到对应的UIImageView里面去
//单击手势,@selector()是单击后会调用的方法 UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(onClickControlWithTap:)]; tap.numberOfTapsRequired = 1; tap.numberOfTouchesRequired = 1; [imageView addGestureRecognizer:tap]
二、轻扫手势:UISwipeRecognizer
- direction//设置轻扫的方向,默认是向右
PS:这里有个坑,如果需要设置多个轻扫方向的话,会用位运算来设置多个方向,这样是不行的。
解决办法:创建多个轻扫手势对象,然后每个轻扫对象设置不同的轻扫方向,然后都加入UIImageView中。
//轻扫手势 UISwipeGestureRecognizer *swipe = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(onClickControlWithSwipe:)]; //允许轻扫的方法(PS:如果这里用分隔符来存放多个方向手势,会出现错误的效果,可以创建多个轻扫手势,然后这些轻扫手势设置不同的轻扫方向,然后全部加入imageView中) swipe.direction = UISwipeGestureRecognizerDirectionRight; swipe.delegate = self; [imageView addGestureRecognizer:swipe]; UISwipeGestureRecognizer *swipe1 = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(onClickControlWithSwipe:)]; swipe.direction = UISwipeGestureRecognizerDirectionLeft; [imageView addGestureRecognizer:swipe1];
三、长按手势:UILongPressRecognizer
allowableMovement//手指按下后事件响应之前允许手指移动的偏移量
- numberOfTouchesRequired//多少个手指按下触发事件
- minimumPressDuration//按下多少秒后触发事件
四、旋转手势:UIRotationRecognizer
/**旋转事件*/-(void)onClickControlWithRotation:(UIRotationGestureRecognizer *)rotation{ if (self.btn_pat.alpha == 1) { rotation.view.transform = CGAffineTransformRotate(rotation.view.transform, rotation.rotation); //注意,这里每次旋转后都让旋转弧度归零 /* 因为每次旋转,rotation.rotatin都是累加的 比如说:从0开始旋转,第一次旋转了1,那么结果应该是0+1=1 此时rotation.rotatin = 1 然后再旋转1,那么就是0+1+1,结果应该是2 但是!此时rotation.rotatin = 2(因为是累加的,他是相对于原点移动了2) 这个时候就会产生错误的结果 产生错误结果原因:0+1+2=3 所以就会越转越快了,因为结果错误 解决办法:每次旋转后,让rotation.rotatin归零,不需要他给我累加,移动1就变1 */ rotation.rotation = 0; }}
五、拖拽手势:UIPanGestureRecognizer/**拖拽事件*/-(void)onClickControlWithPan:(UIPanGestureRecognizer *)pan{ if (self.btn_pat.alpha == 0) { CGPoint point = [pan translationInView:pan.view]; CGPoint temp = pan.view.center; temp.x += point.x; temp.y += point.y; pan.view.center = temp; //和旋转、捏合一样的原理 [pan setTranslation:CGPointZero inView:pan.view]; }}六、捏合手势:UIPinchGestureRecognizer
/**捏合事件*/-(void)onClickControlWithPinch:(UIPinchGestureRecognizer *)pinch{ pinch.view.transform = CGAffineTransformScale(pinch.view.transform, pinch.scale, pinch.scale); /* 和旋转一样的原理,如果不把捏合程度每次都变为1,也会累乘 */ pinch.scale = 1.0;}
综合了6种手势,我做了一个简单的手势例子。
只是我一个脑洞打开的作品而已,小白资历尚浅,还没入门,忘大家轻点喷哦~~~
里面有两个UIImageView:
- 长按的时候可以让图片360度旋转,再次长按使图片停止旋转
- 单击的时候可以让图片放大
- 图片放大后,再次点击能让图片回到原来位置(程序有bug,小白资历浅,改不动了,但是变形的图片也能恢复到原状)
- 图片在原来形状时候,不能捏合图片,只能拖拽、放大、旋转图片
- 在图片原来形状的时候,旋转图片后最好不要拖拽图片,因为此时拖拽效果有问题(又是一个bug,又改不动...)
参考代码:https://github.com/HZhenF/GestureRecognizer.git
点击打开链接
0 0
- UIGestureRecognizer手势综合使用
- 使用iOS手势UIGestureRecognizer
- 使用iOS手势UIGestureRecognizer
- 使用iOS手势UIGestureRecognizer
- 使用iOS手势UIGestureRecognizer
- 使用iOS手势UIGestureRecognizer
- 使用iOS手势UIGestureRecognizer
- 使用iOS手势UIGestureRecognizer
- 使用iOS手势UIGestureRecognizer
- 使用iOS手势UIGestureRecognizer
- 使用iOS手势UIGestureRecognizer
- 使用iOS手势UIGestureRecognizer
- 使用iOS手势UIGestureRecognizer
- 使用iOS手势UIGestureRecognizer
- 使用iOS手势UIGestureRecognizer
- 使用iOS手势UIGestureRecognizer
- UIGestureRecognizer手势使用
- 如何使用iOS手势UIGestureRecognizer
- Visual Studio中dumpbin的使用方法
- ESB v6.6 配置黑名单、白名单咨询
- 递归—排队购票
- 实例讲解ArrayList用法
- 删除排序链表中的重复元素
- UIGestureRecognizer手势综合使用
- 测试CDH hadoop遇到的问题
- HDU4612-Warm up(无向图强连通分量缩点)
- Hiebernate中配置映射关系
- Pointcut is malformed: Pointcut is not well-formed: expecting 'name pattern' at character position 5
- 【Spring学习07】依赖配置:内部对象
- 打印日历
- TCP、UDP、IP 协议分析
- 理解Java的static import静态引入机制
原创粉丝点击
热门IT博客
热门问题
老师的惩罚
人脸识别
我在镇武司摸鱼那些年
重生之率土为王
我在大康的咸鱼生活
盘龙之生命进化
天生仙种
凡人之先天五行
春回大明朝
姑娘不必设防,我是瞎子
改是成非
玄不改非 本熊
痛改前非的意思
性和改革
高考改革
事业改革
消防改革吧
消防改革
改革
机构改革
宗教改革
新高考改革
改革英语
改革是
中国改革
什么是改革
改革是什么
改革的意义
全面深化改革总目标
全面深化改革目标
全面深化改革
改革春风吹满地
对本科教育改革动真格
对本科教育改革动真格的表现
深化宅基地改革试点
高考改革方案
将全面深化改革进行到底
高考改革新方案2019
全面深化改革进行到底
2019高考改革取消艺考
事业单位改革吧
对本科教育改革动真格的评价
湖北省高中课程改革网
攻事攻办
攻
女攻
受攻
老攻身患绝症
快穿之推攻系统
不攻自破
两个弟弟攻哥哥