这是我参与「第四届青训营 」笔记创作活动的第6天
iOS交互与手势
手势识别器
- UIPanGestureRecongnizer(拖动)
- UIPinchGestureRecongnizer(捏合)
- UIRotationGestureRecongnizer(旋转)
- UITapGestureRecongnizer(点按)
- UILongPressGestureRecongnizer(长按)
- UISwipeGestureRecongnizer(轻扫)
iOS事件核心类
- UITouch
- 抽象了手指触摸屏幕的一个类
- 每一个实例代表手指的一次触摸
- 携带有位置、大小等关键信息
- UIEvent
- 抽象了由一个或多个UITouch所造成的一个事件
- 每一个实例代表一个触摸事件,比如单击 长按事件
- UIResponder
- 响应和处理事件的类
- 当有事件发生,系统会去寻找最合适的UIResponder
- 系统告知UIResponder有事件发生时,会把相应的UIEvent传递
iOS事件传递及相应链
- Application将Event发送给keyWindow
- keyWindow由根视图开始,遍历子视图查找响应者视图
- 通过hitTest:withEvent判断响应者
- 判断自身是否能够响应:userInteractionEnabled、hidden、alpha
- 判断触摸点是否在自己frame范围内(pointInside、withEvent)
- 从后往前遍历自己的子视图调用该方法、判断是否有返回view
- 如果子视图都没有能力响应,返回自己
iOS动画编程
- 视图动画UIView Animation
- UIView动画接口
- UIView弹簧动画
- UIView关键帧动画
- 核心动画Core Animation
- 可以实现更加精细、复杂的动画
- 通过Core Animation API直接操作CLayer生成动画
- UIView Block动画是对Core Animation API的封装
- 可以设置动画代理来感知动画的开始结束
- 直接使用原子化的对象
- 核心动画类
- Core Animation基本动画
- Core Animation关键帧动画
- Core Animation动画组
- 第三方动画库lottie
- 动力学动画UIDynamic
- UIGravityBehavior重力效果
- UICollisionBehavior碰撞效果
- UIAttachmentBehavior附着效果
- UISnapBehavior吸附效果
- UIPushBehavior推力效果
- UIFieldBehavior场力效果
- UIDynamicItem:动力学元素,模拟仿真物理学动画的控件,是一个协议,UIView等已经实现
- UIDynamicBehavior:仿真行为,
- UIDynamicAnimator:仿真动画者,持有一系列仿真行为,协调Items在坐标系View中展示动画
- 粒子系统CAEmmiterLayer