zoukankan      html  css  js  c++  java
  • IOS触摸事件和手势识别

    IOS触摸事件和手势识别

     

    目录

    • 概述
    • 触摸事件
    • 手势识别

     

    概述

    为了实现一些新的需求,我们常常需要给IOS添加触摸事件和手势识别

     

    触摸事件

    触摸事件的四种方法

    -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event  开始触摸所触发的方法

    -(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event  移动时触发的方法

    -(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event  离开时触发的方法

    -(void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event  系统由于某原因取消触摸事件时所调用的方法

    获得触摸位置的方法

    for(UITouch *t in touches){

    CGPoint touchPosition = [t locationInView:self.view];

    NSLog(@"%f,%f",touchPosition.x,touchPosition.y);  

    }

      

    手势识别

    手势种类

    UITapGestureRecognizer轻触

    UISwipeGestureRecognizer很快的滑动

    UIPanGestureRecognizer拖动

    UIPinchGestureRecognizer两个手指头捏或放

    UIRotationGestureRecognizer手指方向操作

    UILongPressGestureRecognizer长按

    UITapGestureRecognizer轻触

    初始化

    UITapGestureRecognizer *tapGR = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapAction:)];

    [view addGestureRecognizer:tapGR];

    常用方法

    [self setNumberOfTapsRequired:numbers];

    [self setNumberOfTouchesRequired:number2];

    其他方法可以参考UIGestureRecognizer文档

    UITapGestureRecognizer的响应方法

    -(void)tapAction:(UITapGestureRecognizer *)sender{

    //Tap拿起的时候

    if(tapGR.state == UIGestureRecognizerStateEnded){

    }

    //Tap按下的时候

    if(tapGR.state == UIGestureRecognizerStateBegan){

    }

    //等等其他状态

    }

    获得UITapGestureRecognizer按下的位置

    CGPoint point = [sender locationInView:view];

     

     

  • 相关阅读:
    Java 运动模糊
    Efounds笔试
    Algorithms code
    Java 画图
    Java 笔记
    Java 对二值化图片识别连通域
    工厂模式
    数据库克隆
    SQL优化
    微信调起jssdk一闪而过
  • 原文地址:https://www.cnblogs.com/IOS-Developer/p/4118571.html
Copyright © 2011-2022 走看看