ios 根据手势放大或缩小图片
2012-05-15 18:47
549 查看
1.在.h文件中加入一个变量用来记录当前的scale值, 让这个ViewController遵循
UIGestureRecognizerDelegate代理.
并在.h中加入下面这个变量
CGFloat lastScale;
2. 在viewDidLoad中加入下面语句UIView *holderView = [[UIViewalloc]initWithFrame:CGRectMake(0,0,320,
416)];
UIImageView *showImgView = [[UIImageViewalloc]initWithFrame:CGRectMake(0,0,320,
416)];
showImgView.image =img;
showImgView.contentMode =UIViewContentModeScaleAspectFit;
[holderView
addSubview:showImgView];
[showImgView
release];
UIPinchGestureRecognizer *pinchRecognizer = [[UIPinchGestureRecognizeralloc]initWithTarget:selfaction:@selector(scaGesture:)];
[pinchRecognizersetDelegate:self];
[holderView
addGestureRecognizer:pinchRecognizer];
[pinchRecognizerrelease];
[self.viewaddSubview:holderView];
[holderView
release];
3.在加入这个手势的执行方法
-(void)scaGesture:(id)sender {
[self.viewbringSubviewToFront:[(UIPinchGestureRecognizer*)senderview]];
//当手指离开屏幕时,将lastscale设置为1.0
if([(UIPinchGestureRecognizer*)senderstate]
== UIGestureRecognizerStateEnded) {
lastScale = 1.0;
return;
}
CGFloat scale = 1.0 - (lastScale - [(UIPinchGestureRecognizer*)senderscale]);
CGAffineTransform currentTransform = [(UIPinchGestureRecognizer*)senderview].transform;
CGAffineTransform newTransform = CGAffineTransformScale(currentTransform, scale, scale);
[[(UIPinchGestureRecognizer*)senderview]setTransform:newTransform];
lastScale = [(UIPinchGestureRecognizer*)senderscale];
}
4. 加入手势的代理方法
#pragma mark - UIGestureRecognizerDelegate
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer
shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer {
return ![gestureRecognizer isKindOfClass:[UIPanGestureRecognizerclass]];
}
5、运行程序,效果如图:(注意这里只能是以图片中心放大的,不能进行移动图片,若要移动图片,需要修改其Transform部分代码)
下面这个图是从别处找来的,
自己截图并上传比较麻烦, 呵呵
注意:请在真机上运行,在模拟器中无法模拟Pinch手势, 按住option和shift键在模拟器上也能模拟出两个手指的手势
相关文章推荐
- ios 根据手势放大或缩小图片
- ios 根据手势放大或缩小图片
- ios 根据手势放大或缩小图片
- 利用iOS手势与scrollView代理实现图片的放大缩小
- iOS开发——手势识别器(用手势实现图片旋转和缩小放大)
- android 自定义ImageView实现图片手势滑动,多点触摸放大缩小效果
- 根据屏幕分辨率放大缩小图片
- ios 图片拖拽,捏,双击放大缩小,以及保存到相册
- android自定义ImageView实现图片手势滑动,多点触摸放大缩小效果
- android 自定义ImageView实现图片手势滑动,多点触摸放大缩小效果
- ios图片放大缩小
- iOS 滑动浏览图片 捏合缩小放大 音量线控
- iOS 图片浏览的放大缩小
- 自定义View利用手势检测实现图片放大缩小
- android 自定义ImageView实现图片手势滑动,多点触摸放大缩小效果
- ios 双指捏合放大缩小图片的例子
- [js/jquery]移动端手势拖动,放大,缩小预览图片
- ios 双指捏合放大缩小图片的例子
- ios 图片拖拽,捏,双击放大缩小
- iOS点击button放大后缩小效果,类似QQ、微信选择图片时的特效。