[IOS]自定义长触屏事件

来源:未知 责任编辑:责任编辑 发表时间:2015-10-08 14:15 点击:
写一个Demo来自定义一个长触屏事件,自定义长按手势。 p>实现步骤:

p>1.创建一个自定义手势类,命名为LongPressGestureRecognizer,在创建的时候继承UIGestureRecognizer

p>LongPressGestuRecognizer.h:

p> 
#import <UIKit/UIKit.h>  
  
@interface LongPressGestureRecognizer : UIGestureRecognizer  
  
@end  

 

p> 

p>LongPressGestuRecognizer.m:

p> 

p> 
#import "LongPressGestureRecognizer.h"  
#import <UIKit/UIGestureRecognizerSubclass.h>  
#import <time.h>  
  
NSInteger timer1;  
NSInteger timer2;  
@implementation LongPressGestureRecognizer  
  
  
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event  
{  
    [super touchesBegan:touches withEvent:event];  
    NSDate *nowDate = [NSDate date];  
    NSDateFormatter *dateformatter = [[NSDateFormatter alloc] init];  
    [dateformatter setDateFormat:@"ss"];  
      
    timer1 = [[dateformatter stringFromDate:nowDate] integerValue];  
    [dateformatter release];  
    NSLog(@"%d",timer1);  
}  
  
-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event  
{  
    [super touchesEnded:touches withEvent:event];  
    NSDate *nowDate = [NSDate date];  
    NSDateFormatter *dateformatter = [[NSDateFormatter alloc] init];  
    [dateformatter setDateFormat:@"ss"];  
      
    [dateformatter release];  
    NSLog(@"%d",timer1);  
      
    if ((timer2 -timer1) >= 2)  
    {  
         self.state = UIGestureRecognizerStateEnded;  
    }  
      
}  
  

 

p>@end  

p> 

p>2.修改主ViewController

p>ViewController.h:

p> 
#import <UIKit/UIKit.h>  
  
@interface DXWViewController : UIViewController<UIGestureRecognizerDelegate>  
  
@end  

ViewController.m:
[plain] view plaincopyprint?
#import "DXWViewController.h"  
  
#import "LongPressGestureRecognizer.h"  
  
@interface DXWViewController ()  
  
@end  
  
@implementation DXWViewController  
  
- (void)viewDidLoad  
{  
    [super viewDidLoad];  
      
      
    LongPressGestureRecognizer * longPress = [[LongPressGestureRecognizer alloc] initWithTarget:self action:@selector(LongPress:)];  
    [self.view addGestureRecognizer:longPress];  
}  
  
-(void)LongPress:(LongPressGestureRecognizer *)my  
{  
    NSLog(@"OK");  
}  

 

p> 

p>  

p>@end  

p> 

p>3.ViewController中的触屏事件touchesBegan和自定义手势中的touchesBegan区别:                                              

p>ViewController中的touchesBegan是针对整个View而言的,而自定义中的手势是要绑定到某个特定的view,只针对这个view才相应的手势事件

p> 

    发表评论
    请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
    用户名: 验证码:点击我更换图片
    最新评论 更多>>

    推荐热点

    • Lexical or Preprocessor Issue 'xxx.h
    • ios学习笔记(二)xcode 4.3.2下实现基本交互
    • ios学习笔记(一)xcode 4.3.2下创建第一个ios项目
    • UITableView一些方法
    • IOS类似iphone通讯录TableView的完整demo【附源码】
    • ios版本的helloworld
    • iPhone SDK开发:本地文本文件内容的读取
    • 如何为Iphone应用创建启动界面
    • 去掉屏幕键盘的方法
    网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
    Copyright © 2008-2015 计算机技术学习交流网. 版权所有

    豫ICP备11007008号-1