@interface SJAvatarBrowser。图片点击放大,再次点击返回原视图.完美封装,一个类一句代码即可调用.IOS完美实现。" />

图片点击放大,再次点击返回原视图.完美封装,一个类一句代码即可调用.IOS完美实现



图片点击放大,再次点击返回原视图.完美封装,一个类一句代码即可调用.IOS完美实现

创建了一个专门用于放大图片的类,以下为.h文件

?
1 2 3 4 5 6 7 8 9 10 11 # import "" > @interface SJAvatarBrowser : NSObject /** *@brief浏览头像 * *@paramoldImageView头像所在的imageView */ +( void )showImage:(UIImageView*)avatarImageView; @end
以下为.m文件

?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 # import "SJAvatarBrowser.h" static CGRect oldframe; @implementation SJAvatarBrowser +( void )showImage:(UIImageView *)avatarImageView{ UIImage *image=avatarImageView.image; UIWindow *window=[UIApplication sharedApplication].keyWindow; UIView *backgroundView=[[UIView alloc]initWithFrame:CGRectMake( 0 , 0 , [UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.height)]; oldframe=[avatarImageView convertRect:avatarImageView.bounds toView:window]; backgroundView.backgroundColor=[UIColor blackColor]; backgroundView.alpha= 0 ; UIImageView *imageView=[[UIImageView alloc]initWithFrame:oldframe]; imageView.image=image; imageView.tag= 1 ; [backgroundView addSubview:imageView]; [window addSubview:backgroundView]; UITapGestureRecognizer *tap=[[UITapGestureRecognizer alloc]initWithTarget:self action: @selector (hideImage:)]; [backgroundView addGestureRecognizer: tap]; [UIView animateWithDuration: 0.3 animations:^{ imageView.frame=CGRectMake( 0 ,([UIScreen mainScreen].bounds.size.height-image.size.height*[UIScreen mainScreen].bounds.size.width/image.size.width)/ 2 , [UIScreen mainScreen].bounds.size.width, image.size.height*[UIScreen mainScreen].bounds.size.width/image.size.width); backgroundView.alpha= 1 ; } completion:^(BOOL finished) { }]; } +( void )hideImage:(UITapGestureRecognizer*)tap{ UIView *backgroundView=tap.view; UIImageView *imageView=(UIImageView*)[tap.view viewWithTag: 1 ]; [UIView animateWithDuration: 0.3 animations:^{ imageView.frame=oldframe; backgroundView.alpha= 0 ; } completion:^(BOOL finished) { [backgroundView removeFromSuperview]; }]; } @end
引入此类之后,为自己需要放大的imageView添加tap手势
【图片点击放大,再次点击返回原视图.完美封装,一个类一句代码即可调用.IOS完美实现】
?
1 2 3 UITapGestureRecognizer *tap= [[UITapGestureRecognizer alloc] initWithTarget:self action: @selector (magnifyImage)]; [self.imageView addGestureRecognizer:tap];
?
1 2 3 4 5 - ( void )magnifyImage { NSLog(@ "局部放大" ); [SJAvatarBrowser showImage:self.imageView]; //调用方法 }

    推荐阅读