ios开发图片点击放大
图片点击放大,再次点击返回原视图.完美封装,一个类一句代码即可调用.IOS完美实现
创建了一个专门用于放大图片的类,以下为.h文件
- #import <Foundation/Foundation.h>
- @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/u013082522/article/details/18445901
ios开发图片点击放大的更多相关文章
- 李洪强iOS开发之- 点击屏幕遮挡键盘
李洪强iOS开发之- 点击屏幕遮挡键盘 实现的效果: 01 - 给当前的view添加点击事件,使点击屏幕的时候,让键盘退出 /** * 点击屏幕 隐藏键盘 * * @param tap */-(vo ...
- viewer && ImageFlow 图片滚动组件 图片点击放大 可以滚轮放大缩小 viewer
ImageFlow https://finnrudolph.com/products/imageflow https://github.com/countzero/ImageFlow http://w ...
- iOS开发-图片高斯模糊效果
iOS开发的时候有的时候需要将图片设置模糊,或者通过点击下拉方法,去除模糊,一切都是为了应用更受用户欢迎,iOS7之后半透明模糊效果得到大范围使用的比较大,现在也可以看到很多应用局部用到了图片模糊效果 ...
- Android中Textview显示Html,图文混排,支持图片点击放大
本文首发于网易云社区 对于呈现Html文本来说,Android提供的Webview控件可以得到很好的效果,但使用Webview控件的弊端是效率相对比较低,对于呈现简单的html文本的话,杀鸡不必使用牛 ...
- iOS开发图片加载的内存问题及优化方案
原创作者:Magic-Unique 原文地址:https://github.com/Magic-Unique/HXImage猿吧 - 资源共享论坛: http://www.coderbar.cn 做最 ...
- vue图片点击放大功能
因项目需求(ui框架element-ui),需要实现图片的点击放大,还要能旋转以及上下切换.当时第一反应,element-ui好像没有这样的组件,就想过自己写,但是那个旋转翻页上下切换感觉有点麻烦,不 ...
- 动画--android图片点击放大动画,并遮挡旁边的控件
http://blog.csdn.net/s13488941815/article/details/40649823: 首先是点击放大可以使用android自带的缩放动画,因为要遮盖其他控件,就需要控 ...
- [置顶] ios 网页中图片点击放大效果demo
demo功能:点击网页中的图片,图片放大效果的demo.iphone6.1 测试通过. demo说明:通过webview的委托事件shouldStartLoadWithRequest来实现. demo ...
- IOS开发-图片上传
目前IOS端开发,图片上传到服务器分为两种,一种是直接上到服务器,一种是借助第三方储存(减少服务器压力). 一.直接上传到服务器 /** * 代码演示 */ //*******UIImagePNGRe ...
随机推荐
- jQuery 遍历用法
jQuery 遍历 DOM 树 parent() 方法返回被选元素的直接父元素(找爸爸). parents() 方法返回被选元素的所有祖先元素,它一路向上直到文档的根元素 (找长辈). parents ...
- [大牛翻译系列]Hadoop(20)附录A.10 压缩格式LZOP编译安装配置
附录A.10 LZOP LZOP是一种压缩解码器,在MapReduce中可以支持可分块的压缩.第5章中有一节介绍了如何应用LZOP.在这一节中,将介绍如何编译LZOP,在集群做相应配置. A.10.1 ...
- php出现“syntax error, unexpected T_PAAMAYIM_NEKUDOTAYIM”错误的一种情况,及解决方法
PHP中的“syntax error, unexpected T_PAAMAYIM_NEKUDOTAYIM”错误,可能是因为美元符号$的误用,看下面一种情况 class Test{ s ...
- JS遇到的问题解决
1.input 里使用onclick事件,整整花了1个半小时,onclick里面直接用Location.href不需要加<script></script> <?php / ...
- pandas库学习笔记(一)Series入门学习
Pandas基本介绍: pandas is an open source, BSD-licensed (permissive free software licenses) library provi ...
- printf的格式控制的完整格式
printf的格式控制的完整格式:% - 0 m.n l或h 格式字符下面对组成格式说明的各项加以说明:①%:表示格式说明的起始符号,不可缺少.②-:有-表示左对齐输出,如省略表示右对齐输出 ...
- Python中docstring文档的写法
该写法根据Python的PEP 257文档总结. 类的函数称为方法(method),模块里的函数称为函数(function) 每一个包,模块,类,函数,方法都应该包含文档,包括类的__init__方法 ...
- Eclipse 下 opennms 开发环境搭建
1.eclipse3.5或更高版本,并且使用纯净的java版.下载地址:Eclipse for Java Developers. 2.安装需要的插件.通过Help/Install New Softwa ...
- useradd命令详解
功能说明:建立用户帐号.语 法:useradd [-mMnr][-c <备注>][-d <登入目录>][-e <有效期限>][-f <缓冲天数>][-g ...
- iOS开发 适配iOS10以及Xcode8-b
现在在苹果的官网上,我们已经可以下载到Xcode8的GM版本了,加上9.14日凌晨,苹果就要正式推出iOS10系统的推送了,在此之际,iOS10的适配已经迫在眉睫啦,不知道Xcode8 beat版本, ...