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 ...
随机推荐
- 安卓4.0下rem显示不正常的问题
在项目中使用了rem为单位,结果在Oppo和4.0下某些浏览器rem工作不正常,font-size计算出来的px总是大于预期的值,因此加了个Hack var docEl = doc.documentE ...
- 【linux】学习笔记
2014.06.07 开机无法上网,每次都得 $ sudo ifconfig eth1 up $ sudo dhclient eth1 后面发现原来是网卡没设置开机启动 编辑/etc/sysconfi ...
- c# 刻度:毫米 英寸 像素转换
从目前所掌握的资料来看,c#程序中将毫米转换像素的方法无非两种: 第一种: 1: /// <summary> 2: /// 以毫米为单位的显示宽度 3: /// </summary& ...
- matlab实现不动点迭代、牛顿法、割线法
不动点迭代 function xc = fpi( g, x0, tol ) x(1) = x0; i = 1; while 1 x(i + 1) = g(x(i)); if(abs(x(i+1) - ...
- NSRange、NSPoint(CGPoint)、NSSize(CGSize)、NSRect(CGRect)
1.NSRange: typedef struct _NSRange { NSUInteger location; NSUInteger length; } NSRange; NSRange本身是系统 ...
- 【转】jquery-取消冒泡
转自:http://blog.163.com/css_mm/blog/static/209182176201262665157634/ 1.通过返回false来取消默认的行为并阻止事件起泡. jQue ...
- Unity物理优化的一个小问题
为了性能优化,Unity会计算场景中所有的体积,包括静态的碰撞器并把 这些信息存在“Cash”中,对于静止物体而言,有了这些信息,就不需要 再每帧重新进行计算了.若移动,拉伸后或旋转了静态物体时,就是 ...
- 父<IFRAME>获取子页属性以及子页中<IFRAME>的方法
例子如下: 1.父页index.jsp <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "ht ...
- C#异常类总结
http://msdn.microsoft.com/zh-cn/library/aa664610(v=vs.71).aspx C#异常类相关总结 C#异常类一.基类Exception C#异常类二.常 ...
- xubuntu install nodejs
1.安装依赖sudo apt-get install g++ curl libssl-dev apache2-utils git-core 2.去官网获取最新版本 sudo wget http://n ...