博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[分享]iOS开发-图片点击点击放大
阅读量:6656 次
发布时间:2019-06-25

本文共 2203 字,大约阅读时间需要 7 分钟。

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

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

#import
@interfaceSJAvatarBrowser : NSObject //@brief 浏览头像 //@param oldImageView 头像所在的imageView+(void)showImage:(UIImageView*)avatarImageView; @end

以下为.m文件

#import"SJAvatarBrowser.h"staticCGRect oldframe;@implementationSJAvatarBrowser+(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手势

UITapGestureRecognizer *tap  = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(magnifyImage)]; [self.imageView addGestureRecognizer:tap];

-(void)magnifyImage{    NSLog(@"局部放大");    [SJAvatarBrowser showImage:self.imageView];//调用方法}

分享来源:

转载地址:http://oxxto.baihongyu.com/

你可能感兴趣的文章
vimeo
查看>>
网络爬虫的作用和简单分类
查看>>
MySQl 常用操作
查看>>
SD-WAN架构的基本要素:优势和选择
查看>>
52-高级路由:重分发特性:RIP、OSPF
查看>>
LeetCode24-Swap Nodes in Pairs
查看>>
Java架构师学习路线图
查看>>
JPPF与Spring集成实现AOP的完整示例
查看>>
部署DDoS高防需要注意网络安全公司的哪些套路?
查看>>
【前端】前端框架集合与比较(集合贴)
查看>>
MyISAM 表级锁
查看>>
Elasitcsearch High Level Rest Client学习笔记(三)批量api
查看>>
FastReport教程:如何在Angular单页面应用程序中使用Online Designer
查看>>
自从有了企业WiFi管家,老板们都省心了
查看>>
酒店无线覆盖实施的规则
查看>>
高效算法——二分查找
查看>>
Linux几个常用的监控脚本
查看>>
Linux中文件查找技术
查看>>
JVM 垃圾回收机制
查看>>
Linq存储过程(一)
查看>>