您的位置:首页 > 移动开发 > IOS开发

iOS_捏合及旋转手势的使用

2018-01-18 14:04 246 查看
给他图片等视图加上一个或多个手势,这样可以使程序效果更炫酷一点,下面就提供了两种手势的使用方法,建议真机测试,这样比较好直观的感受下手势的使用。
-(void)loadImage {
UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 100, self.view.frame.size.width, 300)];
imageView.image = [UIImage imageNamed:@"1.jpeg"];
//用户交互的属性一定要设置为YES
imageView.userInteractionEnabled = YES;

//捏合手势
UIPinchGestureRecognizer *pinchGes= [[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(pinchAction:)];
//旋转手势
UIRotationGestureRecognizer *rotation = [[UIRotationGestureRecognizer alloc] initWithTarget:self action:@selector(rotationAction:)];

[imageView addGestureRecognizer:pinchGes];
[imageView addGestureRecognizer:rotation];

[self.view addSubview:imageView];
}
-(void)pinchAction:(UIPinchGestureRecognizer *)pinch {
//获取手势的当前视图
UIImageView *imageView = (UIImageView *)pinch.view;
//缩放视图
imageView.transform = CGAffineTransformScale(imageView.transform, pinch.scale, pinch.scale);
//将缩放值归为单位值
pinch.scale = 1;
}

-(void)rotationAction:(UIRotationGestureRecognizer *)rotation {
//获取手势的当前视图
UIImageView *imageView = (UIImageView *)rotation.view;
//旋转视图
imageView.transform = CGAffineTransformRotate(imageView.transform, rotation.rotation);
//将旋转量归为单位值
rotation.rotation = 0;
}

如果想让视图可以同时响应两种或多种手势(一边旋转一边缩放),只要实现一个delegate方法就可以了:<UIGestureRecognizerDelegate>
//视图满足两种或多种手势可以一起响应
pinchGes.delegate = self;
rotation.delegate = self;
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer {
return YES;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐