9.4 GestureRecognizer muli 多个

同时识别多个,需遵循协议,设定委托

#import <UIKit/UIKit.h>

@interface MainViewController : UIViewController <UIGestureRecognizerDelegate>

@end


//
//  MainViewController.m
//  PanGestureRecognizer
//
//  Created by hejin on 13-9-16.
//  Copyright (c) 2013年 iBokanWisdom. All rights reserved.
//

#import "MainViewController.h"

@interface MainViewController ()

@property (retain, nonatomic)UIImageView *imageView;
@property CGFloat lastRotation;

@end

@implementation MainViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
	// Do any additional setup after loading the view.
    //创建图片视图对象
    UIImage *image = [UIImage imageNamed:@"png-0022"];
    self.imageView = [[UIImageView alloc]initWithFrame:CGRectMake(0, 0, 150, 150)];
    self.imageView.center = self.view.center;
    self.imageView.image = image;
    [self.view addSubview:self.imageView];
    //让图片视图可以与用户交互
    self.imageView.userInteractionEnabled = YES;
    //给图片视图对象添加捏合手势
    UIPinchGestureRecognizer *pinch = [[UIPinchGestureRecognizer alloc]initWithTarget:self action:@selector(pinchHandle:)];
    [self.imageView addGestureRecognizer:pinch];
    //给图片视图对象添加旋转手势
    UIRotationGestureRecognizer *rotation = [[UIRotationGestureRecognizer alloc]initWithTarget:self action:@selector(rotateHandle:)];
    [self.imageView addGestureRecognizer:rotation];
    //给捏合、旋转手势指定委托,让一个视图同时响应多个手势----------------------------
    pinch.delegate = self;
    rotation.delegate = self;
}
//捏合手势调用的方法
- (void)pinchHandle:(UIPinchGestureRecognizer *)sender {
    //捏合时保持图片位置不变
    CGPoint location = [sender locationInView:self.view];
    sender.view.center = CGPointMake(location.x, location.y);
    //通过手势的缩放比例改变图片的仿射变换矩阵
    sender.view.transform = CGAffineTransformScale(sender.view.transform, sender.scale, sender.scale);
    //重置手势缩放比例
    sender.scale = 1;
}
//旋转手势调用的方法
- (void)rotateHandle:(UIRotationGestureRecognizer *)sender {
    //改变手势view的仿射变换矩阵
    sender.view.transform = CGAffineTransformRotate(sender.view.transform, sender.rotation);
    //重置弧度
    sender.rotation = 0;
}
//一个视图同时响应多个手势需要实现的方法,只需实现以下方法,并返回YES----------------------
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer {
    return YES;
}
@end








  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值