美文网首页
点击查看大图

点击查看大图

作者: 风___________ | 来源:发表于2018-12-13 11:09 被阅读10次

地址:https://github.com/xzw421771880/ShowBigImage/blob/master/ShowBigImage/ShowBigImage/UIImageView%2BShowBigImage.m

代码

// .h
#import <UIKit/UIKit.h>

@interface UIImageView (ShowBigImage)

-(void)showImage;

@end
// .m

#import "UIImageView+ShowBigImage.h"

@implementation UIImageView (ShowBigImage)

//点击查看大图
static CGRect oldframe;
-(void)showImage{
    UIImage *image=self.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=[self convertRect:self.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];
    imageView.contentMode =UIViewContentModeScaleAspectFit;
    
    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);
        imageView.frame=CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.height);
        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

使用

#import "UIImageView+ShowBigImage.h" // 查看大图
        [self.iconImageView showImage];

相关文章

网友评论

      本文标题:点击查看大图

      本文链接:https://www.haomeiwen.com/subject/niezqqtx.html