ios开发图片全屏预览

2019-08-29  本文已影响0人  第一梯队利群
//
//  ZXImageBrowser.h
//  CMIP
//
//  Created by JesseZhu on 2019/8/29.
//  Copyright © 2019 JesseZhu. All rights reserved.
//

#import <Foundation/Foundation.h>

NS_ASSUME_NONNULL_BEGIN

@interface ZXImageBrowser : NSObject
/**
 *  @brief  点击图片变成大图
 *
 *  @param  oldImageView    图片所在的imageView
 */
+ (void)showImage:(UIImageView *)avatarImageView;
@end

NS_ASSUME_NONNULL_END
//
//  ZXImageBrowser.m
//  CMIP
//
//  Created by JesseZhu on 2019/8/29.
//  Copyright © 2019 JesseZhu. All rights reserved.
//

#import "ZXImageBrowser.h"

@implementation ZXImageBrowser
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

//在Controller中调用
#import "ZXImageBrowser.h"

UIImageView *imgView = [[UIImageView alloc] initWithImage:@"XXX"];
[ZXImageBrowser showImage:imgView];
上一篇 下一篇

猜你喜欢

热点阅读