美文网首页与时俱进的IT
UI(十四)手势UIResponder

UI(十四)手势UIResponder

作者: 社会主义顶梁鹿 | 来源:发表于2018-07-30 17:50 被阅读0次

*手势:

 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,失败

相关文章

  • UI(十四)手势UIResponder

    *手势: UIResponder:是一个响应者(传达者)用来响应用户的触摸屏幕的某些事件 手势的几个方法: *手指...

  • iOS事件文集目录

    IOSEvents介绍 UIResponder UIEvent UITouch 手势点按手势拖动手势旋转手势捏合手...

  • iOS-手势

    UIResponder UIResponder:是一个响应者(传达者)用来响应用户的触摸屏幕的某些事件 手势 手势...

  • iOS_UIViewController

    UIViewController继承了UIResponder,而UIResponder继承了NSObject,UI...

  • 委托与文本输入

    UITextField 示例代码: 一些其他的常用属性: UIResponder UIResponder 是 UI...

  • iOS视图继承关系

    UI控件的继承关系 补充: CALayer -> NSObjectUIView -> UIResponder ->...

  • UI总结-手势

    UI总结-手势 常用的6种手势: #import "ViewController.h" @...

  • UI手势

    手势识别器有:轻拍 长按 旋转 捏合 拖拽 清扫 屏幕边缘拖拽 在使用这些手势识别器时 先打开用户交互 image...

  • UI手势

    UIGestureRecongnizer:NSObject 1.-(void)addGestureRecogniz...

  • UI - 手势

    UIGestureRecognizer手势识别器 手势:有规律的触摸 UIGestureRecognizer抽象类...

网友评论

    本文标题:UI(十四)手势UIResponder

    本文链接:https://www.haomeiwen.com/subject/rxzfvftx.html