//
// EBImageBrowser.h
// EBImageBrowser
//
// Created by yaoliangjun on 16/4/19.
// Copyright © 2016年 yaoliangjun. All rights reserved.
//
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
@interface EBImageBrowser : NSObject
/**
* @brief 点击图片变成大图
*
* @param oldImageView 图片所在的imageView
*/
+ (void)showImage:(UIImageView *)avatarImageView;
@end
//
// EBImageBrowser.m
// EBImageBrowser
//
// Created by yaoliangjun on 16/4/19.
// Copyright © 2016年 yaoliangjun. All rights reserved.
//
#import "EBImageBrowser.h"
@implementation EBImageBrowser
static CGRect oldframe;
+ (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.2 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.2 animations:^{
imageView.frame = oldframe;
backgroundView.alpha = 0;
} completion:^(BOOL finished) {
[backgroundView removeFromSuperview];
}];
}
@end
//
// ViewController.m
// ImageTest
//
// Created by yaoliangjun on 16/4/19.
// Copyright © 2016年 yaoliangjun. All rights reserved.
//
#import "ViewController.h"
#import "EBImageBrowser.h"
@interface ViewController ()
@property (nonatomic, strong) UIImageView *imageView;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(10, 100, 190, 190)];
imageView.userInteractionEnabled = YES;
imageView.image = [UIImage imageNamed:@"chat_location_preview"];
_imageView = imageView;
[self.view addSubview:imageView];
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(magnifyImage)];
[imageView addGestureRecognizer:tap];
}
- (void)magnifyImage
{
NSLog(@"局部放大");
[EBImageBrowser showImage:_imageView];//调用方法
}
@end