图片点击放大,再次点击返回原视图.完美封装,一个类一句代码即可调用.IOS完美实现
2014-01-18 11:02
639 查看
转载请声明源地址点击打开链接
图片点击放大,再次点击返回原视图.完美封装,一个类一句代码即可调用.IOS完美实现
创建了一个专门用于放大图片的类,以下为.h文件
图片点击放大,再次点击返回原视图.完美封装,一个类一句代码即可调用.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完美实现
- 图片点击放大,再次点击返回原视图.完美封装,一个类一句代码即可调用.IOS完美实现
- iOS-点击图片放大,再次点击返回原视图 类似查看相册的功能
- iOS中在指定视图内进行代码截屏操作,并返回特定的图片
- iOS实现点击图片放大和长按保存图片的示例
- iOS 储存用户信息设置封装 直接调用即可(部分是代码片段)
- iOS -点击按钮查看大图,再次点击还原效果(此处以UITableViewCell为父视图,其中加载多个图片为例)
- iOS开发笔记:实现点击图片放大全屏
- iOS-UIImageView点击图片放大,再次点击恢复原始尺寸
- iOS系统弹框封装 一句代码实现中间和底部弹框
- iOS开发有用代码(有判断邮箱格式是否正确的代码、图片压缩、亲测可用的图片上传代码和实现点击图片进行跳转的代码等。)
- 封装UniversalImageLoader框架实现一行代码即可加载图片,且完美支持https图片请求
- IOS 纯代码实现视图控制器的封装
- [IOS]对UITableView的简单封装,实现了下拉放大头部图片的效果
- iOS 图片点击放大封装
- iOS 点击图片放大效果的实现
- Android循环滚动广告条的完美实现,封装方便,平滑过渡,从网络加载图片,点击广告进入对应网址
- ExtJs 完美实现图片在Window窗口中通过鼠标滚轮放大缩小以及点击拖拽