1. 在另外一个ViewController中显示一个相册中加载过来的图片,不失真的加载,具体代码如下:
其中,显示时间是0.3秒时,有一个从外向里面的一个加载动画效果。
使用方法:
ImageEnlargeViewController *_vc = [[ImageEnlargeViewController alloc]init];
_vc.enlargeImages = thumbnail;
[self.navigationController pushViewController:_vc animated:YES];
2. 在当前图片缩略图所在的ViewController中点击加载不失真的放大图片(将显示时间由0.0调整为0.3s),同时打开下面两个注释的代码
// [backgroundView addSubview:imageView];
// [window addSubview:backgroundView];
使用方法: [PhotoBrowser showImage:UIImageView.view];
- (void)viewDidLoad
{
[super viewDidLoad];
[self setTitle:@"图片预览"];
[self initContent];
}
- (void)initContent
{
self.imageViews=[[UIImageView alloc] initWithImage:self.enlargeImages];
self.imageViews.userInteractionEnabled=YES;
[self showImage: self.imageViews];
}
- (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;
[self.view addSubview:imageView];
// [backgroundView addSubview:imageView];
// [window addSubview:backgroundView];
UITapGestureRecognizer *tap=[[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(hideImage:)];
[backgroundView addGestureRecognizer: tap];
[UIView animateWithDuration:0.0 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];
}];
}