*手势:
UIResponder:是一个响应者(传达者) 用来响应用户的触摸屏幕的某些事件
手势的几个方法:
*手指开始触摸屏幕的时候调用
- (void)touchesBegan:(NSSet *)touches withEvent:(nullable UIEvent*)event;
1、时间戳
2、点击次数
3、获得点击的位置***
- (CGPoint)locationInView:(nullable UIView *)view;
可以通过touches获得某一个触摸事件
locationInView UITouch 找到点击视图的某一个点
anyObject 获得touches这个集合里面的某一个touch事件
UITouch *touch = [touches anyObject];
找到触摸视图上面的触摸点
CGPoint point = [touch locationInView:self.view];
*手指触摸屏幕开始移动的时候
- (void)touchesMoved:(NSSet *)touches withEvent:(nullable UIEvent *)event;
*手指离开屏幕的时候
- (void)touchesEnded:(NSSet *)touches withEvent:(nullable UIEvent *)event;
*手指因外部事件取消触摸(一些外部事件让取消 比如来电话)
- (void)touchesCancelled:(nullableNSSet *)touches withEvent:(nullable UIEvent *)event;
手势不调用:
检查是否设置了背景颜色
**手势分为六大手势
六大手势都继承自 UIGestureRecognizer
1、点击 UITapGestureRecognizer
可以通过手势里面的view属性 找到点击的视图
locationaInView:找到点击的位置
numberOfTapsRequired 设置点击手势的点击次数
numberOfTouchesRequired 设置点击手指的个数
2、长按 UILongPressGestureRecognizer
minimumPressDuration 设置长按的时间 多长时间才会去触发
3、拖拽 UIPanGestureRecognizer
minimumNumberOfTouches 最少手指
maximumNumberOfTouches 最多手指
点击位置是0,0 向左减小向上减小可以获得拖动的方向和位置
CGPoint point = [手势 translationInView:视图];
4、捏合 UIPinchGestureRecognizer
使一个视图变形 transform ->UIView中的属性 可以使视图发生形态上的改变
变形之后的视图做其他操作不会还原 除非用transform里面的还原的方法
CGAffineTransform 让试图改变的类
CGAffineTransformMakeScale(CGFloat sx, CGFloat sy) 让视图按照一个比例去变化 放大缩小
CGAffineTransformMakeRotation(CGFloat angle) 让视图按照一个弧度去改变 用于旋转
CGAffineTransformIdentity 还原之前改变的形状
5、轻扫 UISwipeGestureRecognizer
numberOfTouchesRequired 最少手指
*direction设置轻扫的方向
这个用法 让轻扫的方向是左或者右
swipe.direction = UISwipeGestureRecognizerDirectionRight|UISwipeGestureRecognizerDirectionLeft;
UISwipeGestureRecognizerDirectionRight
UISwipeGestureRecognizerDirectionLeft
UISwipeGestureRecognizerDirectionUp
UISwipeGestureRecognizerDirectionDown
6、旋转 UIRotationGestureRecognizer
获得手势的旋转角度 让imageView随这个角度去变化
imageView.transform = CGAffineTransformMakeRotation(sender.rotation);
**六大手势都有的属性方法⬇️
UIGestureRecognizer
*初始化手势的方法
- (instancetype)initWithTarget:(nullable id)target action:(nullable SEL)action
*UIView里面有添加手势的方法 要用UIView的对象去调用
addGestureRecognizer:
*状态属性:state
UIGestureRecognizerStatePossible,默认
UIGestureRecognizerStateBegan,开始
UIGestureRecognizerStateChanged,改变
UIGestureRecognizerStateEnded,结束
UIGestureRecognizerStateCancelled,取消
UIGestureRecognizerStateFailed,失败
网友评论