本文主要是介绍9.3 GestureRecognizer,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
#import <UIKit/UIKit.h>@interface TapViewController : UIViewController@property (strong, nonatomic) UILabel *singleLabel;//显示单击信息标签
@property (strong, nonatomic) UILabel *doubleLabel;//显示双击信息标签
@property (strong, nonatomic) UILabel *tripleLabel;//显示三击信息标签@end
//
// TapViewController.m
// 9 GestureGecognizer
//
// Created by Tracy on 15/5/28.
// Copyright (c) 2015年 Tracy. All rights reserved.
//#import "TapViewController.h"@interface TapViewController ()@end@implementation TapViewController- (void)viewDidLoad {[super viewDidLoad];// Do any additional setup after loading the view.[self onCreate];[self createGestureRecognizer];
}
#pragma mark 创建界面控件
- (void)onCreate {//创建3个标签self.singleLabel = [[UILabel alloc]initWithFrame:CGRectMake(10, 64, 200, 30)];self.singleLabel.text = @"单击次数";self.doubleLabel = [[UILabel alloc]initWithFrame:CGRectMake(10, 104, 200, 30)];self.doubleLabel.text = @"双击次数";self.tripleLabel = [[UILabel alloc]initWithFrame:CGRectMake(10, 144, 200, 30)];self.tripleLabel.text = @"三击次数";//加入视图中[self.view addSubview:self.singleLabel];[self.view addSubview:self.doubleLabel];[self.view addSubview:self.tripleLabel];
}
#pragma mark 创建手势识别器
- (void)createGestureRecognizer {//创建单击手势识别器UITapGestureRecognizer *tap1 = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(tap1:)];//创建双击手势识别器UITapGestureRecognizer *tap2 = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(tap2:)];//创建三击手势识别器UITapGestureRecognizer *tap3 = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(tap3:)];//设置各个手势识别器的属性//单击tap1.numberOfTapsRequired = 1;tap1.numberOfTouchesRequired = 1;//双击tap2.numberOfTapsRequired = 2;tap2.numberOfTouchesRequired = 1;//三击tap3.numberOfTapsRequired = 3;tap3.numberOfTouchesRequired = 1;//注册手势识别器[self.view addGestureRecognizer:tap1];[self.view addGestureRecognizer:tap2];[self.view addGestureRecognizer:tap3];//消除手势重叠//单击等待双击失效后触发---------------------------------------------[tap1 requireGestureRecognizerToFail:tap2];//双击等待三击失效后触发---------------------------------------------[tap2 requireGestureRecognizerToFail:tap3];
}
#pragma mark 单击手势触发的方法
- (void)tap1:(UIGestureRecognizer *)recognizer {self.singleLabel.text = @"检测到单击";[self performSelector:@selector(eraseLabel:) withObject:self.singleLabel afterDelay:1.0f];//1秒以后消除label文本
}
#pragma mark 双击手势触发的方法
- (void)tap2:(UIGestureRecognizer *)recognizer {self.doubleLabel.text = @"检测到双击";[self performSelector:@selector(eraseLabel:) withObject:self.doubleLabel afterDelay:1.0f];//1秒以后消除label文本
}
#pragma mark 三击手势触发的方法
- (void)tap3:(UIGestureRecognizer *)recognizer {self.tripleLabel.text = @"检测到三击";[self performSelector:@selector(eraseLabel:) withObject:self.tripleLabel afterDelay:1.0f];//1秒以后消除label文本
}
- (void)didReceiveMemoryWarning {[super didReceiveMemoryWarning];// Dispose of any resources that can be recreated.
}#pragma mark 消除label文本
- (void)eraseLabel:(UILabel *)label {label.text = @"";
}
/*
#pragma mark - Navigation// In a storyboard-based application, you will often want to do a little preparation before navigation
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {// Get the new view controller using [segue destinationViewController].// Pass the selected object to the new view controller.
}
*/@end
这篇关于9.3 GestureRecognizer的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!