您的位置:首页 > 其它

OC_图片放大缩小_移动手势综合

2015-07-20 17:34 204 查看
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/iOS_And_Swift/article/details/46971485

1.创建UIImageView打开交互

UIImageView * imageV= [[UIImageView alloc]initWithFrame:CGRectMake(0, 0, kScreen
idth,
kScreenHeight)];
imageV.contentMode =  UIViewContentModeScaleAspectFit ;//UIView的填充模式
imageV.userInteractionEnabled = YES ;//打开交互
//手势
UIPinchGestureRecognizer * pin =[[UIPinchGestureRecognizer alloc]initWithTarget:self action:@selector(scaleImage:)];
[imageV addGestureRecognizer:pin];

2.实现放大缩小scaleImage函数

-(void)scaleImage:(UIPinchGestureRecognizer *)sender{

CGFloat value;
if (sender.state ==  UIGestureRecognizerStateEnded) {
_lastScale = 1.0 ;//在手势结束时候 要重置为1.0的,否则下次变化会大小突变
[UIView animateWithDuration:0.25 animations:^{
// sender.view.frame = CGRectMake(kScreenWidth * sender.view.tag, 0, kScreenWidth, kScreenHeight);
}];

return ;
}
else if(sender.state == UIGestureRecognizerStateChanged) {
double scaleValue = 1.0 + sender.scale - _lastScale;
;
value = scaleValue ;
CGAffineTransform   treans =  (sender.view.transform);
CGAffineTransform   transNew =CGAffineTransformScale( treans, value, value);
sender.view.transform = transNew ;
_lastScale = sender.scale ;
// NSLog(@"value:%f  now:%f  last:%f",sender.scale,scaleValue,_lastScale);
}

//    UIScrollView * superView =(UIScrollView*) sender.view.superview;
//    superView.contentSize= CGSizeMake(getWidth(sender.view.frame), getHeight(sender.view.frame));

}

3.拖动

UIPanGestureRecognizer * pan =[[UIPanGestureRecognizer alloc]initWithTarget:self action:@selector(pan:)];
[imageV addGestureRecognizer:pan];

4.拖动实现

-(void)pan:(UIPanGestureRecognizer *)sender{
CGPoint location = [sender translationInView:sender.view];
sender.view.transform = CGAffineTransformTranslate(sender.view.transform ,location.x , location.y);
[sender setTranslation:CGPointZero inView:sender.view];
}

Demo地址
里边有可以直接用的类似微信的图片点击效果,可以看看。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐