事件的处理机制和手势的操作
iOS中的事件分发##
事件的分类###
- Touch Events(多点触摸事件)
视图的exclusiveTouch设置为YES防止多点触碰都有事件发生。
- touchesBegan:withEvent:方法:一个或多个手指置于视图或窗口上
- touchesMoved:withEvent:方法:一个或多个手指在移动
- touchesEnded:withEvent:方法:一个或多个手指离开视图或窗口
- touchesCancelled:withEvent:方法:如果其他系统事件(如内存不足警告)使得触摸被取消
-
Motion Events(运动事件)
- motionBegan:withEvent:方法:运动事件开始
- motionEnded:withEvent:方法:运动事件结束
- motionCancelled:withEvent:方法:运动事件取消
-
Remote-Control Events(远程控制事件)
- remoteControlReceivedWithEvent:方法:接收到远程控制事件
事件的分发机制###
问题:当有多个重叠的UIView时,谁是第一响应者
- 默认的点击顺序是按照UIView中subviews的逆顺序
- 如果UIView的同级别subviews中有重叠的部分,则优先检查顶部的subview,如果顶部的subview返回nil,再检查底部的subview。
iOS中的手势操作##
手势操作是通过使用者的手指触控,计算手指移动轨迹、坐标,然后对程序做相应处理的过程。手势操作需要添加手势识别器,所有手势识别器公共的父类是UIGestureRecognizer。
各种手势的使用###
点击手势:UITapGestureRecognizer
长按手势:UILongPressGestureRecognizer
旋转手势:UIRotationGestureRecognizer
捏合手势:UIPinchGestureRecognizer
滑动手势:UISwipeGestureRecognizer
拖动手势:UIPanGestureRecognizer