sdk 3.0 手势事件

一:手势事件类型

 

1.父类

UIGestureRecognizer 是一个抽象类,是所有手势事件的父类。

 

The concrete subclasses of UIGestureRecognizer are the following:

 

UITapGestureRecognizer  //轻拍
UIPinchGestureRecognizer //捏合
UIRotationGestureRecognizer //旋转
UISwipeGestureRecognizer  //扫
UIPanGestureRecognizer//拖拽
UILongPressGestureRecognizer //长按

 

2,如何添加手势事件及响应

 

(1)添加:调用 UIVIEW及其子类的  addGestureRecognizer:

(2)响应函数样式比如是下面两种的一种形式

- (void)handleGesture;
- (void)handleGesture:(UIGestureRecognizer *)gestureRecognizer;

 

     

- (void)viewDidLoad {
//---tap gesture---
UITapGestureRecognizer *tapGesture =[[UITapGestureRecognizer alloc]
initWithTarget:self
action:@selector(handleTapGesture:)];
tapGesture.numberOfTapsRequired = 2;
[imageView addGestureRecognizer:tapGesture];
[tapGesture release];
[super viewDidLoad];
}
//---handle tap gesture---
-(IBAction) handleTapGesture:(UIGestureRecognizer *) sender {
if (sender.view.contentMode == UIViewContentModeScaleAspectFit)
sender.view.contentMode = UIViewContentModeCenter;
else
sender.view.contentMode = UIViewContentModeScaleAspectFit;
}

 

3。

UITapGestureRecognizer 

       numberOfTapsRequired  :设置轻击的次数,默认值为1


       numberOfTouchesRequired  :触点的数量,默认值为1,即手指数

 

UIPinchGestureRecognizer

     当两个手指靠近表示zoom-in,当两个手指分离表示zoom-out。

           scale  

@property(nonatomic) CGFloat scale,放大缩小因子


           velocity 

@property(nonatomic, readonly) CGFloat velocity  ,只读属性 ,表示移动速度

 

UIRotationGestureRecognizer

 

       rotation  :旋转角度
       velocity  :速度

 

UISwipeGestureRecognizer 

  direction  :扫动方向,默认值UISwipeGestureRecognizerDirectionRight

 

typedef enum {
   UISwipeGestureRecognizerDirectionRight = 1 << 0,
   UISwipeGestureRecognizerDirectionLeft  = 1 << 1,
   UISwipeGestureRecognizerDirectionUp    = 1 << 2,
   UISwipeGestureRecognizerDirectionDown  = 1 << 3
} UISwipeGestureRecognizerDirection;

 


  numberOfTouchesRequired : 触点的数量,默认值为1,即手指数

 

 

UIPanGestureRecognizer

 

  maximumNumberOfTouches  :最大触摸的数量
  minimumNumberOfTouches  :最少触摸的数量

 

– translationInView:

A point identifying the new location of a view in the coordinate system of its designated superview.

(一个点确定一个新的位置在其指定的父视图的坐标系统)


– setTranslation:inView:

 

 

The velocity of the pan gesture, which is expressed in points per second. The velocity is broken into horizontal and vertical components.

(手势的速度,这是表示在每分每秒。速度分解为水平和垂直分量。)
– velocityInView:

- (CGPoint)velocityInView:(UIView *)view

 

UILongPressGestureRecognizer

 

  minimumPressDuration  :长按最短的时间
  numberOfTouchesRequired  :
  numberOfTapsRequired  :
  allowableMovement  :长按时运行移动的最大距离,默认值为10个像素

 

 

 

 

手指事件生命周期(状态)

 

取得当前手势状态

@property(nonatomic,readwrite) UIGestureRecognizerState state;

 

 

 

 

 

Possible ----> Began ----> [Changed] ----> Cancelled
Possible ----> Began ----> [Changed] ----> Ended

 

 

typedef enum {    

UIGestureRecognizerStatePossible,     

      UIGestureRecognizerStateBegan,     

 UIGestureRecognizerStateChanged,    

  UIGestureRecognizerStateEnded,     

 UIGestureRecognizerStateCancelled,   

        UIGestureRecognizerStateFailed,     

      UIGestureRecognizerStateRecognized = UIGestureRecognizerStateEnded  } UIGestureRecognizerState;

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值