標籤:
#import "ViewController.h"@interface ViewController ()<UIGestureRecognizerDelegate>@property (weak, nonatomic) IBOutlet UIImageView *imageV;@end@implementation ViewController- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. self.imageV.userInteractionEnabled = YES; //添加旋轉手勢 [self rotationGes]; //添加捏合手勢 [self pinch]; }//Simultaneous:同時//是否允許同時支援多個手勢-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer{ return YES;} //添加旋轉手勢- (void)rotationGes{ //添加旋轉手勢 UIRotationGestureRecognizer *rotation = [[UIRotationGestureRecognizer alloc] initWithTarget:self action:@selector(rotationGes:)]; rotation.delegate = self; [self.imageV addGestureRecognizer:rotation];}- (void)rotationGes:(UIRotationGestureRecognizer *)rotationGes{ self.imageV.transform = CGAffineTransformRotate(self.imageV.transform, rotationGes.rotation); //複位 [rotationGes setRotation:0]; } //添加捏合手勢- (void)pinch{ UIPinchGestureRecognizer *pinch = [[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(pinch:)]; pinch.delegate = self; [self.imageV addGestureRecognizer:pinch];}//當縮放時調用- (void)pinch:(UIPinchGestureRecognizer *)pinch{ NSLog(@"%s",__func__); self.imageV.transform = CGAffineTransformScale(self.imageV.transform, pinch.scale,pinch.scale ); //複位 [pinch setScale:1];}- (void)panGes{ //添加拖動手勢 UIPanGestureRecognizer *pan = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(pan:)]; [self.imageV addGestureRecognizer:pan];}//當拖動View時調用- (void)pan:(UIPanGestureRecognizer *)pan { //擷取位移量(相對於最原始的位移量) CGPoint transP = [pan translationInView:self.imageV]; NSLog(@"%@",NSStringFromCGPoint(transP)); self.imageV.transform = CGAffineTransformTranslate(self.imageV.transform, transP.x, transP.y); //讓它相對於上一次 //複位. [pan setTranslation:CGPointZero inView:self.imageV]; }@end
ios開發手勢處理之手勢識別二