当前位置:编程学习 > wap >>

为View添加手势

[cpp] 
01.#import <UIKit/UIKit.h>  
02. 
03.@inte易做图ce TestGestureRecognizerViewController : UIViewController { 
04.    UIView *aView; 
05.} 
06.@property(nonatomic,retain)IBOutlet UIView *aView; 
07.@end 
08. 
09.///////////////////////////////////////////////////////////////////////////////////////////////  
10. 
11. 
12.#import "TestGestureRecognizerViewController.h"  
13.#import <QuartzCore/QuartzCore.h>//导入框架  
14. 
15.@implementation TestGestureRecognizerViewController 
16.@synthesize aView; 
17. 
18.-(void)handelPan:(UIPanGestureRecognizer*)gestureRecognizer{ 
19.    //获取平移手势对象在self.view的位置点,并将这个点作为self.aView的center,这样就实现了拖动的效果  
20.    CGPoint curPoint = [gestureRecognizer locationInView:self.view]; 
21.    [self.aView setCenter:curPoint]; 
22.} 
23.-(void)handelTap:(UITapGestureRecognizer *)gestureRecognizer{ 
24.    NSLog(@"%s",__FUNCTION__); 
25.    [NSRunLoop cancelPreviousPerformRequestsWithTarget:self];//双击事件取消延时  
26.} 
27.//单击方法  
28.-(void)handelSingleTap:(UITapGestureRecognizer*)gestureRecognizer{ 
29.    NSLog(@"%s",__FUNCTION__); 
30.    [self performSelector:@selector(singleTap:) withObject:nil afterDelay:0.2]; 
31.} 
32.-(void)singleTap:(id)sender{ 
33.    NSLog(@"%s",__FUNCTION__); 
34.} 
35. 
36.- (void)viewDidLoad { 
37.    [super viewDidLoad]; 
38. 
39.    //创建一个平移手势对象,该对象可以调用handelPan:方法  
40.    UIPanGestureRecognizer *panGes = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(handelPan:)]; 
41.    [self.aView addGestureRecognizer:panGes]; 
42.    [panGes release]; 
43. 
44.    //创建一个点击手势对象,该对象可以调用handelTap:方法  
45.    UITapGestureRecognizer *tapGes = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handelTap:)]; 
46.    [self.view addGestureRecognizer:tapGes]; 
47.    [tapGes release]; 
48.    [tapGes setNumberOfTouchesRequired:1];//触摸点个数  
49.    [tapGes setNumberOfTapsRequired:2];//点击次数  
50. 
51.    //创建一个点击手势对象,该对象可以调用handelSingleTap:方法  
52.    UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handelSingleTap:)]; 
53.    [self.view addGestureRecognizer:singleTap]; 
54.    [singleTap release]; 
55.    [singleTap setNumberOfTouchesRequired:1];//触摸点个数  
56.    [singleTap setNumberOfTapsRequired:1];//点击次数  
57.} 
58. 
59.- (void)dealloc { 
60.    [super dealloc]; 
61.} 
62. 
63.@end 
#import <UIKit/UIKit.h>

@inte易做图ce TestGestureRecognizerViewController : UIViewController {
    UIView *aView;
}
@property(nonatomic,retain)IBOutlet UIView *aView;
@end

///////////////////////////////////////////////////////////////////////////////////////////////


#import "TestGestureRecognizerViewController.h"
#import <QuartzCore/QuartzCore.h>//导入框架

@implementation TestGestureRecognizerViewController
@synthesize aView;

-(void)handelPan:(UIPanGestureRecognizer*)gestureRecognizer{
    //获取平移手势对象在self.view的位置点,并将这个点作为self.aView的center,这样就实现了拖动的效果
    CGPoint curPoint = [gestureRecognizer locationInView:self.view];
    [self.aView setCenter:curPoint];
}
-(void)handelTap:(UITapGestureRecognizer *)gestureRecognizer{
    NSLog(@"%s",__FUNCTION__);
    [NSRunLoop cancelPreviousPerformRequestsWithTarget:self];//双击事件取消延时
}
//单击方法
-(void)handelSingleTap:(UITapGestureRecognizer*)gestureRecognizer{
    NSLog(@"%s",__FUNCTION__);
    [self performSelector:@selector(singleTap:) withObject:nil afterDelay:0.2];
}
-(void)singleTap:(id)sender{
    NSLog(@"%s",__FUNCTION__);
}

- (void)viewDidLoad {
    [super viewDidLoad];

    //创建一个平移手势对象,该对象可以调用handelPan:方法
    UIPanGestureRecognizer *panGes = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(handelPan:)];
    [self.aView addGestureRecognizer:panGes];
    [panGes release];

    //创建一个点击手势对象,该对象可以调用handelTap:方法
    UITapGestureRecognizer *tapGes = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handelTap:)];
    [self.view addGestureRecognizer:tapGes];
    [tapGes release];
    [tapGes setNumberOfTouchesRequired:1];//触摸点个数
    [tapGes setNumberOfTapsRequired:2];//点击次数

    //创建一个点击手势对象,该对象可以调用handelSingleTap:方法
    UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handelSingleTap:)];
    [self.view addGestureRecognizer:singleTap];
    [singleTap release];
    [singleTap setNumberOfTouchesRequired:1];//触摸点个数
    [singleTap setNumberOfTapsRequired:1];//点击次数
}

- (void)dealloc {
    [super dealloc];
}

@end

 

补充:移动开发 , IOS ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,