iOS - 关于点击小图片之后查看对应大图的实现
来源:互联网 发布:看电影赚钱的软件 编辑:程序博客网 时间:2024/05/02 07:51
在此,封装了一个类,外面用的话直接调用方法,即可实现想要的效果。但是有一点,点进去之后只能查看对应的一张图,不能滑动,如果想要更多的效果,自己在此基础上进行再封装吧。只做参考。代码如下:
.h文件中:
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
@interface SJAvatarBrowser :NSObject
+(void)showImage:(UIImageView *)avatarImageView;
#import "SJAvatarBrowser.h"
static CGRect oldframe;
@implementation SJAvatarBrowser
+(void)showImage:(UIImageView *)avatarImageView{
UIImage *image=avatarImageView.image;
UIWindow *window=[UIApplicationsharedApplication].keyWindow;
UIView *backgroundView=[[UIViewalloc]initWithFrame:CGRectMake(0,0, [UIScreenmainScreen].bounds.size.width, [UIScreenmainScreen].bounds.size.height)];
oldframe=[avatarImageViewconvertRect:avatarImageView.boundstoView:window];
backgroundView.backgroundColor=[UIColorblackColor];
backgroundView.alpha=0;
UIImageView *imageView=[[UIImageViewalloc]initWithFrame:oldframe];
imageView.image=image;
imageView.tag=1;
[backgroundView addSubview:imageView];
[window addSubview:backgroundView];
UITapGestureRecognizer *tap=[[UITapGestureRecognizeralloc]initWithTarget:selfaction:@selector(hideImage:)];
[backgroundView addGestureRecognizer: tap];
[UIViewanimateWithDuration:0.3animations:^{
imageView.frame=CGRectMake(0,([UIScreenmainScreen].bounds.size.height-image.size.height*[UIScreenmainScreen].bounds.size.width/image.size.width)/2, [UIScreen mainScreen].bounds.size.width, image.size.height*[UIScreenmainScreen].bounds.size.width/image.size.width);
backgroundView.alpha=1;
} completion:^(BOOL finished) {
}];
}
+(void)hideImage:(UITapGestureRecognizer*)tap{
UIView *backgroundView=tap.view;
UIImageView *imageView=(UIImageView*)[tap.viewviewWithTag:1];
[UIViewanimateWithDuration:0.3animations:^{
imageView.frame=oldframe;
backgroundView.alpha=0;
} completion:^(BOOL finished) {
[backgroundView removeFromSuperview];
}];
}
////////////////////////////////
在此,一个封装好的类,已经结束。下面以ViewController为例,来说明:
#import "ViewController.h"
#import "SJAvatarBrowser.h"
@interface ViewController () {
UIImageView *_imageView;
}
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
UIImageView *imageView = [[UIImageViewalloc] init];
imageView.frame = CGRectMake(100,100, 300,300);
imageView.image = [UIImageimageNamed:@"4.jpg"];
imageView.userInteractionEnabled =YES;
[self.viewaddSubview:imageView];
_imageView = imageView;
UITapGestureRecognizer *tap = [[UITapGestureRecognizeralloc] initWithTarget:selfaction:@selector(magnifyImage:)];
[imageView addGestureRecognizer:tap];
}
- (void)magnifyImage:(UITapGestureRecognizer *)gesture {
NSLog(@"版权所有,违者必究,Q_Q33757152的博客");
[SJAvatarBrowser showImage:_imageView];//调用方法
}
- iOS - 关于点击小图片之后查看对应大图的实现
- iOS - 关于点击小图查看大图的封装(包含单击、双击、捏合手势)
- 点击发送后图片查看大图的实现思路
- 点击图片,查看大图
- DOM基础1之点击小图片显示对应的大图
- iOS点击查看大图的动画效果
- iOS点击查看大图的动画效果
- ImageSwitcher 点击小图显示对应的大图
- WKWebview点击图片查看大图
- js 图片 点击查看大图
- IOS 点击查看预览大图缩放图片往下掉的处理
- 点击小图片弹出大图
- UIImageView实现点击小图时显示对应大图的功能
- 点击小图片显示相应的大图片的js的实现
- 实现页面上点击小图片,弹出大图片的效果
- JQuery【点击小图查看大图】
- html点击小图查看大图
- 图片预览可以点击查看大图
- linux软链接
- electron sqlite 问题
- 自动化测试的必要条件
- java里的静态成员变量是放在了堆内存还是栈内存
- 管道表达式操作符
- iOS - 关于点击小图片之后查看对应大图的实现
- 文章标题
- require.js的笔记
- C#语言与面向对象技术(1)
- java版简单选择排序
- JS初级_自定义属性的应用:点击一次换图片2,再点击恢复为图片1
- SQL查询问题
- 《大数据原理与实践》第3次公开课:Technology
- 为什么Java中1000==1000为false而100==100为true