iOS-手势

作者: 磊CC | 来源:发表于2016-04-16 12:34 被阅读287次

UIResponder

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

手势

手势分为六大手势,都继承自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);

手势的属性方法

初始化

-(instancetype)initWithTarget:(nullableid)targetaction:(nullableSEL)action

*状态属性:state

UIGestureRecognizerStatePossible,默认

UIGestureRecognizerStateBegan,开始

UIGestureRecognizerStateChanged,改变

UIGestureRecognizerStateEnded,结束

UIGestureRecognizerStateCancelled,取消

UIGestureRecognizerStateFailed,失败

*UIView里面有添加手势的方法要用UIView的对象去调用

addGestureRecognizer:

手势的触发方法

*手指开始触摸屏幕的时候调用

- (void)touchesBegan:(NSSet *)touches withEvent:(nullableUIEvent*)event;

注:

anyObject 获得touches这个集合里面的某一个touch事件

UITouch *touch = [touches anyObject];

找到触摸视图上面的触摸点

CGPointpoint = [touch locationInView:self.view];

*手指触摸屏幕开始移动的时候

- (void)touchesMoved:(NSSet*)touches withEvent:(nullableUIEvent*)event;

*手指离开屏幕的时候

- (void)touchesEnded:(NSSet*)touches withEvent:(nullableUIEvent*)event;

*手指因外部事件取消触摸(一些外部事件让取消比如来电话)

- (void)touchesCancelled:(nullableNSSet *)touches withEvent:(nullableUIEvent *)event;

注:若手势不调用,检查是否设置了背景颜色。我就犯过这种错误。

相关文章

  • iOS-手势

    手势使用方法 1.创建手势2.添加手势3.实现手势方法 添加点按手势 代理方法:是否允许接收手指 添加长按手势 添...

  • iOS-手势

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

  • iOS-手势

    iOS中所有的手势操作都继承于UIGestureRecognizer,这个类本身不能直接使用。这个类中定义了这几种...

  • iOS-手势识别

    ios系统提供了一些常用的手势(UIgestureRecognizer的子类),方便我们直接使用。 UIGestu...

  • iOS-手势UIGestureRecognier详解

    一. 手势UIGestureRecognier简介 iOS 3.2之后,苹果推出了手势识别功能(Gesture R...

  • IOS-手势事件简述

    在iOS中事件分为三类: 触摸事件:通过触摸。手势进行触发事件(七大手势)运动时间:通过加速器进行触发的事件(摇一...

  • iOS-解决手势冲突

    最近的项目中里面有一个需求,UIScrollerView 上面放了一个横向滑动的UICollectionView,...

  • iOS-根据Pan手势,精确计算手势方向

    本文将分享: 怎么根据Pan手势,精确计算手势方向 哈哈。。。老样子,上传一张动漫图。 Talk is cheap...

  • IOS-手势指定响应区域

    在开发过程中,我们可能会遇到这个问题. 当我们给一个view添加了手势,但是我们又不想点击view上面的视图也触发...

  • IOS-手势图片点击放大

    需要实现的效果:当点击一张图片时,可以扩大到整个屏幕.再次点击时缩小到原来的大小实现思路:1.封装一个继承UIIm...

网友评论

    本文标题:iOS-手势

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