- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
UIImage *img = [UIImage imageNamed:@"iphone.png"];
UIImageView *imageView = [[UIImageView alloc]initWithImage:img];
imageView.frame = CGRectMake(100, 100, 200, 200);
[self.view addSubview:imageView];
UITapGestureRecognizer *tapGestureRecognizer = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(handleTap:)];
tapGestureRecognizer.numberOfTouchesRequired = 1;
tapGestureRecognizer.numberOfTapsRequired = 1;
[imageView addGestureRecognizer:tapGestureRecognizer];
//添加拖动手势
UIPanGestureRecognizer *panGestureRecognizer = [[UIPanGestureRecognizer alloc]initWithTarget:self action:@selector(handlePan:)];
[imageView addGestureRecognizer:panGestureRecognizer];
//添加捏合缩放手势
UIPinchGestureRecognizer *pinchGestureRecognizer = [[UIPinchGestureRecognizer alloc]initWithTarget:self action:@selector(handlePinch:)];
[imageView addGestureRecognizer:pinchGestureRecognizer];
//添加旋转手势
UIRotationGestureRecognizer *rotationGestureRecognizer = [[UIRotationGestureRecognizer alloc]initWithTarget:self action:@selector(handleRotation:)];
[imageView addGestureRecognizer:rotationGestureRecognizer];
}
#pragma mark - 单击手势
- (void)handleTap:(UITapGestureRecognizer *)recognizer
{
UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"message" message:@"你单击了图片" delegate:nil cancelButtonTitle:@"yes" otherButtonTitles: nil];
[alert show];
}
#pragma mark - 拖动手势
- (void)handlePan:(UIPanGestureRecognizer *)recognizer
{
CGPoint translation = [recognizer translationInView:self.view];
recognizer.view.center = CGPointMake(recognizer.view.center.x + translation.x, recognizer.view.center.y + translation.y);
[recognizer setTranslation:CGPointZero inView:self.view];
//使用 CGAffineTransformMakeTranslation 函数创建一个仿射位移变换(affine translation transformation)。将被绘制到图形环境上的一切,到一个新的位置,而不需要修改你的绘图代码。
// recognizer.view.transform = CGAffineTransformMakeTranslation(recognizer.view.center.x, recognizer.view.center.y);
}
#pragma mark - 双指捏合,模拟器上按住Option模拟
- (void)handlePinch:(UIPinchGestureRecognizer *)recognizer
{
//transform为仿射变换 可以用于 平移、旋转、缩放变换路径 或者图形上下文
//CGAffineTransformScale为创建一个给定缩放比例的变换
recognizer.view.transform = CGAffineTransformScale(recognizer.view.transform, recognizer.scale, recognizer.scale);
//重置
recognizer.scale = 1;
}
- (void)handleRotation:(UIRotationGestureRecognizer *)recognizer
{
//CGAffineTransformRotate创建一个给定角度旋转的变换
recognizer.view.transform = CGAffineTransformRotate(recognizer.view.transform, recognizer.rotation);
recognizer.rotation = 0;
}
@end
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
UIImage *img = [UIImage imageNamed:@"iphone.png"];
UIImageView *imageView = [[UIImageView alloc]initWithImage:img];
imageView.frame = CGRectMake(100, 100, 200, 200);
[self.view addSubview:imageView];
//重要!其中交换功能
imageView.userInteractionEnabled = YES;UITapGestureRecognizer *tapGestureRecognizer = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(handleTap:)];
tapGestureRecognizer.numberOfTouchesRequired = 1;
tapGestureRecognizer.numberOfTapsRequired = 1;
[imageView addGestureRecognizer:tapGestureRecognizer];
//添加拖动手势
UIPanGestureRecognizer *panGestureRecognizer = [[UIPanGestureRecognizer alloc]initWithTarget:self action:@selector(handlePan:)];
[imageView addGestureRecognizer:panGestureRecognizer];
//添加捏合缩放手势
UIPinchGestureRecognizer *pinchGestureRecognizer = [[UIPinchGestureRecognizer alloc]initWithTarget:self action:@selector(handlePinch:)];
[imageView addGestureRecognizer:pinchGestureRecognizer];
//添加旋转手势
UIRotationGestureRecognizer *rotationGestureRecognizer = [[UIRotationGestureRecognizer alloc]initWithTarget:self action:@selector(handleRotation:)];
[imageView addGestureRecognizer:rotationGestureRecognizer];
}
#pragma mark - 单击手势
- (void)handleTap:(UITapGestureRecognizer *)recognizer
{
UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"message" message:@"你单击了图片" delegate:nil cancelButtonTitle:@"yes" otherButtonTitles: nil];
[alert show];
}
#pragma mark - 拖动手势
- (void)handlePan:(UIPanGestureRecognizer *)recognizer
{
CGPoint translation = [recognizer translationInView:self.view];
recognizer.view.center = CGPointMake(recognizer.view.center.x + translation.x, recognizer.view.center.y + translation.y);
[recognizer setTranslation:CGPointZero inView:self.view];
//使用 CGAffineTransformMakeTranslation 函数创建一个仿射位移变换(affine translation transformation)。将被绘制到图形环境上的一切,到一个新的位置,而不需要修改你的绘图代码。
// recognizer.view.transform = CGAffineTransformMakeTranslation(recognizer.view.center.x, recognizer.view.center.y);
}
#pragma mark - 双指捏合,模拟器上按住Option模拟
- (void)handlePinch:(UIPinchGestureRecognizer *)recognizer
{
//transform为仿射变换 可以用于 平移、旋转、缩放变换路径 或者图形上下文
//CGAffineTransformScale为创建一个给定缩放比例的变换
recognizer.view.transform = CGAffineTransformScale(recognizer.view.transform, recognizer.scale, recognizer.scale);
//重置
recognizer.scale = 1;
}
- (void)handleRotation:(UIRotationGestureRecognizer *)recognizer
{
//CGAffineTransformRotate创建一个给定角度旋转的变换
recognizer.view.transform = CGAffineTransformRotate(recognizer.view.transform, recognizer.rotation);
recognizer.rotation = 0;
}
@end