iOS圖片縮小放大scollView實現代碼

gcd8 9年前發布 | 10K 次閱讀 Objective-C IOS

使用ios SDK自帶的 UIScrollView 可以實現對圖片的縮放

現在給大家分享我的項目中可以直接使用的組件,需要引入 afnetworking等第三方框架

關于AFNetworking大家可以自行百度,使用它的目的是下載網絡圖片(使用SDWebImage也可以)

使用scrollView實現圖片的縮放,下面是一個可以直接使用的組件:

主要功能有:

顯示網絡圖片,捏合放大或者縮小,單擊關閉當前圖片頁面,雙擊放大

    //  ImageDetailCon.h  
    //  
    //  

    #import <UIKit/UIKit.h>  
    @interface ImageDetailCon : UIViewController<UIScrollViewDelegate>    //需要使用 對應的 協議  
    @property(strong,nonatomic)NSURL *imageURL;//給外界的接口,外界傳值給ImageDetailCon  *vc;,然后present出來即可  
    @end  
    //  
    //  ImageDetailCon.m  
    //  

    #import "ImageDetailCon.h"  
    #import <UIImageView+AFNetworking.h>//使用afnetworking框架  
    @interface ImageDetailCon ()  
    {  
        UIScrollView *scrollView;  
        UIImageView *imageView;  
    }  
    @end  

    @implementation ImageDetailCon  
    - (void)viewDidLoad  
    {  
        [super viewDidLoad];  
        scrollView=[[UIScrollView alloc]initWithFrame:self.view.bounds];  
        scrollView.maximumZoomScale=5.0;//圖片的放大倍數  
        scrollView.minimumZoomScale=1.0;//圖片的最小倍率  
        scrollView.contentSize=CGSizeMake(self.view.bounds.size.width*1.5, self.view.bounds.size.height*1.5);  
        scrollView.delegate=self;  
        imageView=[[UIImageView alloc]initWithFrame:self.view.bounds];  
        [imageView setImageWithURL:self.imageURL placeholderImage:[UIImage imageNamed:@"Fav_Img_Download"]];  
        [scrollView addSubview:imageView];  
        [self.view addSubview:scrollView];  
        imageView.userInteractionEnabled=YES;//注意:imageView默認是不可以交互,在這里設置為可以交互  
        UITapGestureRecognizer *tap=[[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(tapImage:)];  
        tap.numberOfTapsRequired=1;//單擊  
        tap.numberOfTouchesRequired=1;//單點觸碰  
        [imageView addGestureRecognizer:tap];  
        UITapGestureRecognizer *doubleTap=[[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(doubleTap:)];  
        doubleTap.numberOfTapsRequired=2;//避免單擊與雙擊沖突  
        [tap requireGestureRecognizerToFail:doubleTap];  
        [imageView addGestureRecognizer:doubleTap];  
        imageView.contentMode=UIViewContentModeScaleAspectFit;  

    }  
    -(UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView  //委托方法,必須設置  delegate  
    {  
        return imageView;//要放大的視圖  
    }  

    -(void)doubleTap:(id)sender  
    {  
        scrollView.zoomScale=2.0;//雙擊放大到兩倍  
    }  
    - (IBAction)tapImage:(id)sender  
    {  
        [self dismissViewControllerAnimated:YES completion:nil];//單擊圖像,關閉圖片詳情(當前圖片頁面)  
    }  
    @end  

 本文由用戶 gcd8 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!