UI_GestureRecognizer_手势识别器
7种手势有:
点击(Tap)
长按(LongPress)
轻扫(swip)
旋转(rotation)
捏合(pinc)
拖拽(pan)
屏幕边缘(ScreenEdgePan)@implementation MainViewController
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
}
return self;
}
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.
self.view.backgroundColor = [UIColor orangeColor];
// ********************************************************************
// 点击手势
// // 初始化方法,绑定一个对象和对象要执行的方法
//
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapAction:)];
// // 点击次数
tap.numberOfTapsRequired = 2;
// // 手指个数
tap.numberOfTouchesRequired = 2;
// // 给View添加手势
[imageView addGestureRecognizer:tap];
//
// // 内存管理
[tap release];
// ********************************************************************
// 长按手势
UILongPressGestureRecognizer *longPress = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(longPressActon:)];
// 判定长按需要的时间,默认0.5
longPress.minimumPressDuration = 3;
// 允许手指移动的像素
longPress.allowableMovement = 100;
[imageView addGestureRecognizer:longPress];
[longPress release];
// ********************************************************************
// 轻扫
UISwipeGestureRecognizer *swipe = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipAction:)];
// 滑动方向
swipe.direction = UISwipeGestureRecognizerDirectionLeft;
[imageView addGestureRecognizer:swipe];
[swipe release];
// ********************************************************************
// 旋转
UIRotationGestureRecognizer *rotation = [[UIRotationGestureRecognizer alloc] initWithTarget:self action:@selector(rotation:)];
[imageView addGestureRecognizer:rotation];
[rotation release];
// ********************************************************************
// 捏合
UIPinchGestureRecognizer *pinch = [[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(pinch:)];
[imageView addGestureRecognizer:pinch];
[pinch release];
// ********************************************************************
// 拖拽
UIPanGestureRecognizer *pan = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(pan:)];
[imageView addGestureRecognizer:pan];
[pan release];
}
// 方法的实现部分
- (void)pan:(UIPanGestureRecognizer *)pan
{
NSLog(@"拖拽");
}
- (void)pinch:(UIPinchGestureRecognizer *)pinch
{
NSLog(@"捏合");
UIView *view = pinch.view;
view.transform = CGAffineTransformScale(view.transform, pinch.scale, pinch.scale);
// 放大的倍数
pinch.scale = 1;
}
- (void)rotation:(UIRotationGestureRecognizer *)rotation
{
NSLog(@"旋转");
// 获得当前手势所在的view
UIView *view = rotation.view;
// transform 属性:旋转手势旋转的角度
view.transform = CGAffineTransformRotate(view.transform, rotation.rotation);
rotation.rotation = 0;
}
- (void)swipAction:(UISwipeGestureRecognizer *)swipe
{
NSLog(@"轻扫");
}
- (void)longPressActon:(UILongPressGestureRecognizer *)longPress
{
// 手势的状态
// 长按开始的时候
if (longPress.state == UIGestureRecognizerStateBegan) {
NSLog(@"长按");
}
}
- (void)tapAction:(UITapGestureRecognizer *)tap
{
NSLog(@"点击手势");
}
- (void)touchClicked:(TouchView *)touchView
{
NSLog(@"触发事件");
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end