iOS 一个点击头像放大浏览的工具类

不多说了,直接贴代码了,可以直接引用。

.h 文件

#import <Foundation/Foundation.h>


@interface LTImageToolMethod : NSObject

/**

 

 *

 @brief  浏览头像

 

 *

 

 *

 @param  oldImageView    头像所在的imageView

 

 */


+(void)showImage:(UIImageView*)avatarImageView;


@end



.m中的实现:

#import "LTImageToolMethod.h"


static


CGRect oldframe;


@implementation LTImageToolMethod


+(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.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);

         

         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




OK  ,以上就是一个工具就建好了,

在图片点击的方法中直接调用 

[LTImageToolMethod showImage: 图片的imageview];

就可以了。


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值