5.UIPanGestureRecognizer
#import "ViewController_4.h"
@interface ViewController_4 ()
@property (nonatomic, strong) UILabel *label;
@end
@implementation ViewController_4
- (void)viewDidLoad {
[super viewDidLoad];
UILabel *textlabel = [[UILabel alloc] initWithFrame:CGRectMake(10, 80, 200, 45)];
textlabel.text = @"pan手势,拖动方块";
[textlabel sizeToFit];
textlabel.font = [UIFont systemFontOfSize:12];
[self.view addSubview:textlabel];
self.label = [[UILabel alloc] initWithFrame:CGRectMake(100, 100, 100, 100)];
self.label.backgroundColor = [UIColor grayColor];
self.label.userInteractionEnabled = YES;
self.label.text = @"0";
self.label.textAlignment = NSTextAlignmentCenter;
[self.view addSubview:self.label];
UIPanGestureRecognizer *pan = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(panAction:)];
[self.label addGestureRecognizer:pan];
}
- (void)panAction:(UIPanGestureRecognizer *)pan {
CGPoint offset = [pan locationInView:self.view];
self.label.center = offset;
}
@end
6.UIRotationGestureRecognizer
#import "ViewController_5.h"
@interface ViewController_5 ()
@property (nonatomic, strong) UILabel *label;
@end
@implementation ViewController_5
- (void)viewDidLoad {
[super viewDidLoad];
UILabel *textlabel = [[UILabel alloc] initWithFrame:CGRectMake(10, 80, 200, 45)];
textlabel.text = @"模拟器测试旋转手势时,按住 option键,再用触摸板或鼠标操作";
textlabel.font = [UIFont systemFontOfSize:12];
textlabel.numberOfLines = 0;
[self.view addSubview:textlabel];
self.label = [[UILabel alloc] initWithFrame:CGRectMake(40, 200, 200, 50)];
self.label.backgroundColor = [UIColor grayColor];
self.label.userInteractionEnabled = YES;
self.label.text = @"we are friends";
self.label.textAlignment = NSTextAlignmentCenter;
[self.view addSubview:self.label];
//(模拟器测试捏合和旋转手势时,按住 option 键,再用触摸板或鼠标操作)
UIRotationGestureRecognizer *rotation = [[UIRotationGestureRecognizer alloc] initWithTarget:self action:@selector(rotationAction:)];
[self.view addGestureRecognizer:rotation];
}
- (void)rotationAction:(UIRotationGestureRecognizer *)rotation {
self.label.transform = CGAffineTransformRotate(self.label.transform, rotation.rotation);
rotation.rotation = 0; // 这个很重要!!!!!
// static float orginState;
//
// self.label.transform = CGAffineTransformMakeRotation(rotation.rotation + orginState);
//
// if (rotation.state == UIGestureRecognizerStateEnded) {
//
// orginState = orginState + rotation.state;
// self.label.transform = CGAffineTransformMakeRotation(rotation.rotation);
// }
}
@end
7.UIPinchGestureRecognizer
#import "ViewController_6.h"
@interface ViewController_6 ()
@property (nonatomic, strong) UILabel *label;
@end
@implementation ViewController_6
- (void)viewDidLoad {
[super viewDidLoad];
UILabel *textlabel = [[UILabel alloc] initWithFrame:CGRectMake(10, 80, 200, 45)];
textlabel.text = @"模拟器测试捏合手势时,按住 option键,再用触摸板或鼠标操作";
textlabel.font = [UIFont systemFontOfSize:12];
textlabel.numberOfLines = 0;
[self.view addSubview:textlabel];
self.label = [[UILabel alloc] initWithFrame:CGRectMake(100, 250, 80, 80)];
self.label.backgroundColor = [UIColor grayColor];
self.label.userInteractionEnabled = YES;
self.label.text = @"0";
self.label.textAlignment = NSTextAlignmentCenter;
[self.view addSubview:self.label];
// (模拟器测试捏合和旋转手势时,按住 option 键,再用触摸板或鼠标操作)
UIPinchGestureRecognizer * pinch = [[UIPinchGestureRecognizer alloc]initWithTarget:self action:@selector(pichGesture:)];
[self.view addGestureRecognizer:pinch];
}
- (void)pichGesture:(UIPinchGestureRecognizer *)pinch {
static float originScale = 1;
//手势缩放返回的scale 是相对于上一次的
self.label.transform = CGAffineTransformMakeScale(pinch.scale * originScale , pinch.scale*originScale);
if (pinch.state == UIGestureRecognizerStateEnded) {
originScale = originScale * pinch.scale;
}
}
@end










