摘要:图片点击放大再次点击返回原视图完美封装一个类一句代码即可调用完美实现创建了一个专门用于放大图片的类以下为文件浏览头像头像所在的以下为文件引入此类之后为自己需要放大的添加手势局部放大调用方法分享来源
图片点击放大,再次点击返回原视图.完美封装,一个类一句代码即可调用.IOS完美实现
创建了一个专门用于放大图片的类,以下为.h文件
#import@interface SJAvatarBrowser : NSObject //@brief 浏览头像 //@param oldImageView 头像所在的imageView +(void)showImage:(UIImageView*)avatarImageView; @end
以下为.m文件
#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手势
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(magnifyImage)]; [self.imageView addGestureRecognizer:tap];
-(void)magnifyImage { NSLog(@"局部放大"); [SJAvatarBrowser showImage:self.imageView];//调用方法 }
分享来源:
http://blog.csdn.net/ssrrxx11...
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/16105.html
摘要:如何让我们所开发的手机页面能有更好的交互体验,就是这篇文章的主旨移动开发问题和优化小结。关于和鼠标事件的延迟说明,我引用叶小钗大神博客里面的一张图片,如下在手机上,的延迟将近。 1.前言 到目前为止,互联网行业里,手机越来越智能化,移动端占有的比例越来越高,尤其实在电商,新闻,广告,游戏领域。用户要求越来越高,网站功能越来越好,效果越来越炫酷,这就要求我们产品质量越来越高,web前端开...
摘要:如何让我们所开发的手机页面能有更好的交互体验,就是这篇文章的主旨移动开发问题和优化小结。关于和鼠标事件的延迟说明,我引用叶小钗大神博客里面的一张图片,如下在手机上,的延迟将近。 1.前言 到目前为止,互联网行业里,手机越来越智能化,移动端占有的比例越来越高,尤其实在电商,新闻,广告,游戏领域。用户要求越来越高,网站功能越来越好,效果越来越炫酷,这就要求我们产品质量越来越高,web前端开...
摘要:瀑布流分屏显示最好的方式是采用瀑布流,这样比较方便的能够适应的变化。是向提供布局信息,也包括对于视图的布局信息。非常适合有视频聊天开发需求的开发者。 在上一篇Agora iOS SDK-开始聊天介绍了如何使用Agora SDK进行一对一的聊天,这篇主要介绍下如何使用Agora iOS进行多人聊天,需要实现的功能: 随着加入人数的变化,而显示不同的UI,主要是分屏 在多屏显示的情况下,...
阅读 2100·2021-11-25 09:43
阅读 2660·2021-11-24 09:39
阅读 1163·2021-09-02 15:34
阅读 2823·2019-08-30 11:10
阅读 984·2019-08-29 16:34
阅读 484·2019-08-29 13:25
阅读 3262·2019-08-29 11:21
阅读 2750·2019-08-26 11:39