美文网首页与时俱进的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

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