注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

熊猫正正的博客

熊猫正正的天空

 
 
 

日志

 
 

实现手势识别(一)  

2013-05-09 20:51:21|  分类: ios开发 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

检测轻扫(swipe)手势 

创建一个 UISwipeGestureRecognizer 类型的对象,然后把它添加到你对应的视图中。

 轻扫手势是内置于 iOS SDK 中最简单的手势之一。它是一个或者多个手指在一个 view 中从某个方向直接移动到另外一个方向。跟别的手势识别器一样, UISwipeGestureRecognizer 继承自 SwipeGestureRecognizer。在 UISwipeGestureRecognizer 类 中添加了许多功能,比如我们可以指定检测某个方向轻扫的事件,或者需要用户多少个手指 进行轻扫才能被检测到。请记住一点的是,轻扫手势是一个单独的手势。


代码如下:

#import <UIKit/UIKit.h>


@interface ViewController : UIViewController

{

    UISwipeGestureRecognizer *swipeGestureRecognizer;

}


@property UISwipeGestureRecognizer *swipeGestureRecognizer;


@end


-------------

#import "ViewController.h"


@interface ViewController ()


@end


@implementation ViewController

@synthesize swipeGestureRecognizer;


- (void)viewDidLoad

{

    [super viewDidLoad];

// Do any additional setup after loading the view, typically from a nib.

    self.swipeGestureRecognizer = [[UISwipeGestureRecognizer alloc]

                                   initWithTarget:self action:@selector(handleSwipes:)];

    

    self.swipeGestureRecognizer.direction = UISwipeGestureRecognizerDirectionLeft;

    self.swipeGestureRecognizer.numberOfTouchesRequired = 1;

    

    [self.view addGestureRecognizer:self.swipeGestureRecognizer];

}


- (void) handleSwipes: (UISwipeGestureRecognizer *) paramSender

{

    if (paramSender.direction & UISwipeGestureRecognizerDirectionDown)

    {

        NSLog(@"Swiped Down");

    }


    if (paramSender.direction & UISwipeGestureRecognizerDirectionLeft)

    {

        NSLog(@"Swiped Left");

    }


    if (paramSender.direction & UISwipeGestureRecognizerDirectionRight)

    {

        NSLog(@"Swiped Right");

    }


    if (paramSender.direction & UISwipeGestureRecognizerDirectionUp)

    {

        NSLog(@"Swiped Up");

    }

}


- (void)didReceiveMemoryWarning

{

    [super didReceiveMemoryWarning];

    // Dispose of any resources that can be recreated.

}


@end


通过或操作,对 SwipeGestureRecognizer direction 属性进行赋值,可以结 合多个方向。在 OC 中,或操作符是“|”。例如,为了检测在屏幕中进行左下角轻扫,在创 建轻扫手势识别器时,可以通过或操作符结合 UISwipeGestureRecognizerDirectionLeft UISwipeGestureRecognizerDirectionDown。在上面的例子中,我们只进行了从右到左的轻扫 检测。

 虽然轻扫手势我们通常是使用一个手指,但是并不代表我们不能使用多个手指,我们只 需要根据我们的需要,然后在 UISwipeGestureRecognizer 这个类中 numberOfTouchesRequired 这个属性中进行指定即可。


  评论这张
 
阅读(44)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017