ios基础篇(九)—— 手势识别

el/2024/7/17 21:03:14

UIGestureRecognizer:

手势识别器 能轻松识别用户在某个view上面做的一些常见手势

UIGestureRecognizer 是一个抽象类,定义了所有手势的基本行为,使用它的子类才能处理具体的手势

UIPanGestureRecognizer(拖动)
UIPinchGestureRecognizer(捏合)
UIRotationGestureRecognizer(旋转)
UITapGestureRecognizer(点按)敲击
UILongPressGestureRecognizer(长按)
​UISwipeGestureRecognizer(轻扫)

先创建一个手势对象,给view去添加,实现方法

UITapGestureRecognizer(点按)敲击

numberOfTapRequired = 2;  //点几次

numberOfTouchesRequired = 2; //几根手指

UILongPressGestureRecognizer(长按)

minimumPressDuration  最小触摸时间  长按多长时间有反应

allowableMovement 误差范围

​UISwipeGestureRecognizer(轻扫)

默认轻扫手势从左到右

direction 课更改手势方向 

UISwipeGestureRecognizer* swipe1 = [[UISwipeGestureRecognizer alloc] initWithTarget:self action @selector(swipe:)];
swipe1.direction = UISwipeGestureRecognizerDirectionleft;
[self.imageView addGestureRecognizer:swipe1];

要多个手势 就多个对象

UIRotationGestureRecognizer(旋转)

在实现方法中 ,每旋转 将rotation 归为0 可以防止 图片角度增加 变快的情况  累加

UIPinchGestureRecognizer(捏合)

scale为1 同样避免手势捏合的角度 累加到图片上  图片变化的速度过快

UIPanGestureRecognizer(拖拽)

方法:translationInView  获取手指移动的位置

旋转和缩放是有冲突的

多个手势同时使用  - >代理  

https://www.jianshu.com/p/df86508e2811


http://www.ngui.cc/el/3419346.html

相关文章

ios基础篇(十)—— CALayer基本属性

在iOS中,你能看得见摸得着的东西基本上都是UIView,比如一个按钮、一个文本标签、一个文本输入框、一个图标等等,这些都是UIView其实UIView之所以能显示在屏幕上,完全是因为它内部的一个图层 在创建UIView对象时,UIView…

ios基础篇(十.一)—— 动画

CADisplayLink CADisplayLink是一种以屏幕刷新频率触发的时钟机制,每秒钟执行大约60次左右 CADisplayLink是一个计时器,可以使绘图代码与视图的刷新频率保持同步,而NSTimer无法确保计时器实际被触发的准确时间 使用方法: 定义…

ios基础篇(十一)—— 同步/异步、进程/线程、pthread、线程状态、线程同步、自动释放池

多线程 一、同步/异步 1、1同步 我们之前写程序的时候都是从上到下,从左到右,代码执行顺序1个人执行多个任务,也是依次执行,1个人同一时间执行1个任务 1.2异步 多个人可以同时执行多个任务 二、进程/线程 2.1进程 进程是指在系统中正在运行的一个应用程序每个…

ios基础篇(十二)—— 消息循环、GCD、任务和队列、串行、并行、Barrier阻塞、延时操作、一次性执行

一、消息循环 什么是消息循环 Runloop就是消息循环,每一个线程内部都有一个消息循环只有主线程的消息循环默认开启,子线程的消息循环默认不开启消息循环的目的 保证程序不退出负责处理输入事件如果没有事件发生,会让程序进入休眠状态 1.1 消…

ios基础篇(十三)—— 调度组、NSOperationQueue

一、调度组 有时候需要在多个异步任务都执行完成之后继续做某些事情,比如下载歌曲,等所有的歌曲都下载完毕之后 转到 主线程提示用户 //1 全局队列dispatch_queue_t queue dispatch_get_global_queue(0, 0);//2 调度组dispatch_group_t group dispatc…

ios基础篇(十五)—— SDWebImage

一、SDWebImage介绍 什么是SDWebImage iOS中著名的牛逼的网络图片处理框架包含的功能:图片下载、图片缓存、下载进度监听、gif处理等等用法极其简单,功能十分强大,大大提高了网络图片的处理效率国内超过90%的iOS项目都有它的影子项目地址 ht…

ios基础篇(十六)—— 网络之sockct

一、网络基本概念 客户端:应用 C/S B/S服务器:为客户端提供服务、数据、资源的机器请求:客户端向服务器索取数据响应:服务器对客户端的请求作出反应,一般是返回给客户端数据服务器 内网服务器外网服务器本地测试服…

时序图

一、时序图简介(Brief introduction) 时序图(Sequence Diagram)是显示对象之间交互的图,这些对象是按时间顺序排列的。 顺序图中显示的是参与交互的对象及其对象之间消息交互的顺序。 时序图中包括的建模元素主要有&a…

《Objective-C高级编程:iOS与OS X多线程和内存管理》 一 自动引用计数

一、自动引用计数 1.1 内存管理的思考方式 对象操作与objective-c 方法的对应对象操作Object-C 方法生成并持有对象alloc、new、copy、mutableCopy持有对象retain方法释放对象release方法废弃对象dealloc方法1.1.1 自己生成的对象,自己持有 使用以下名称开头的方…

《Objective-C高级编程:iOS与OS X多线程和内存管理》 一 Blocks模式GCD

一、Blocks摘要 Blocks:带有自动变量(局部变量)的匿名函数。 匿名函数:不带有名称的函数。 int func(int cout); //声明名称为func的函数 int result func(10); // 调用该函数,必须使用该函数的名称 // 若像下面这…