iOS 交互、手势|青训营笔记

144 阅读2分钟

这是我参与「第四届青训营 」笔记创作活动的的第13天,今天是8月16日,今天对学习的ios交互、手势的相关知识进行整理归纳。

手势识别器(UIGestureRecognizer)

UIGestureRecognizer 的子类:

UIPanGestureRecognizer(拖动)

UIPinchGestureRecognizer(捏合)

UIRotationGestureRecognizer(旋转)

UITapGestureRecognizer(点按)

UILongPressGestureRecognizer(长按)

UISwipeGestureRecognizer(轻扫)

创建手势识别器:

自定义手势时,需要 #import <UIKit/UIGestureRecognizerSubclass.h>

1.使用initWithTarget:action: 初始化方法来创建手势识别器(所有手势识别器的基类初始化方法)

2.通过addGestureRecogizer方法给UIView添加手势识别器(addGestureRecognizer是UIView的基类方法)

3.一个View中可以添加多个手势识别器

使用手势:

1.初始化方法创建手势识别器

2.设置手势识别器对象实例的相关属性(delegate等),delegate成员需要实现UIGestureRecognizerDelegate协议

3.通过addGestureRecogizer方法给UIView添加手势识别器

image.png

事件响应机制

iOS事件类型:触摸事件(点击、滑动)、运动事件(重力感应、摇一摇)、远程事件(手柄)

UITouch类(触摸事件)

抽象了手指触摸屏幕的一个类、每一个实例代表手指的一次触摸、携带有位置大小等关键信息

began:当用户用手指触摸屏幕时,会创建一个与手指相关联的UITouch集合(一根手指对应一个UITouch对象),touch对象保存着跟本次手指触摸相关的信息,比如触摸的位置、时间、阶段。

moved:手指移动时,系统会更新同一个UITouch对象,使之能够一直保存该手指在的触摸位置。

ended:当手指离开屏幕时,系统会销毁相应的UITouch对象。

UIEvent类(触摸事件)

抽象了由一个或多个UITouch所造成的一个事情,每一个实例代表一个触摸事件,如单击事件、长按事件等

成为事件对象,记录产生的时刻和类型,事件对象中包含:当前多点触摸序列相对应的所有触摸对象,还可以提供与特定视图或窗口相关联的触摸对象。

UIResponder类

响应和处理事件的类,当有事件发生时系统会去寻找最合适的UIResponder,系统告知UIResponder有事件发生时,会把相应的UIEvent传递

响应者:UIView、UIViewController、UIApplication、AppDelegate

总结

今天了解了iOS 交互、手势的相关知识,知道了手势响应的一些基本类和相关初始化方法。