你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> [IOS]自定義長觸屏事件

[IOS]自定義長觸屏事件

編輯:IOS開發綜合
寫一個Demo來自定義一個長觸屏事件,自定義長按手勢。 實現步驟: 1.創建一個自定義手勢類,命名為LongPressGestureRecognizer,在創建的時候繼承UIGestureRecognizer LongPressGestuRecognizer.h:  
#import <UIKit/UIKit.h>  
  
@interface LongPressGestureRecognizer : UIGestureRecognizer  
  
@end  

 

  LongPressGestuRecognizer.m:    
#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;  
    }  
      
}  
  

 

@end     2.修改主ViewController ViewController.h:  
#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");  
}  

 

     @end     3.ViewController中的觸屏事件touchesBegan和自定義手勢中的touchesBegan區別:                                               ViewController中的touchesBegan是針對整個View而言的,而自定義中的手勢是要綁定到某個特定的view,只針對這個view才相應的手勢事件  
  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved