关于ios的一些手势(UIGestureRecognizer)

关于ios的一些手势(UIGestureRecognizer)  

2012-11-09 10:51:33|  分类: object-c ios|字号 订阅

一:手势事件类型

1.父类

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

The concrete subclasses of UIGestureRecognizer are the following:

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

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

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

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

object-c代码
  1. (void)handleGesture;
  2. (void)handleGesture:(UIGestureRecognizer *)gestureRecognizer;

object-c代码
  1. (void)viewDidLoad {
  2. //---tap gesture---
  3. UITapGestureRecognizer *tapGesture =[[UITapGestureRecognizer alloc]
  4. initWithTarget:self
  5. action:@selector(handleTapGesture:)];
  6. tapGesture.numberOfTapsRequired 2;
  7. [imageView addGestureRecognizer:tapGesture];
  8. [tapGesture release];
  9. [super viewDidLoad];
  10. }
  11. //---handle tap gesture---
  12. -(IBAction) handleTapGesture:(UIGestureRecognizer *) sender {
  13. if (sender.view.contentMode == UIViewContentModeScaleAspectFit)
  14. sender.view.contentMode UIViewContentModeCenter;
  15. else
  16. sender.view.contentMode UIViewContentModeScaleAspectFit;
  17. }

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、付费专栏及课程。

余额充值