美文网首页iOS技术文章
UIScrollView控件实现图片缩放功能☀️

UIScrollView控件实现图片缩放功能☀️

作者: LeaderBiao | 来源:发表于2016-06-23 14:32 被阅读1417次
    • 版权声明:本文为博主原创文章,未经博主允许不得转载。

    一、缩放

    • 1.简单说明:

    有些时候,我们可能要对某些内容进行手势缩放,如下图所示:

    UIScrollView不仅能滚动显示大量内容,还能对其内容进行缩放处理。也就是说,要完成缩放功能的话,只需要将需要缩放的内容添加到UIScrollView中

    • 2.缩放原理

    当用户在UIScrollView身上使用捏合手势时,UIScrollView会给代理发送一条消息,询问代理究竟要缩放自己内部的哪一个子控件(哪一块内容)

    当用户在UIScrollView身上使用捏合手势时,UIScrollView会调用代理的viewForZoomingInScrollView:方法,这个方法返回的控件就是需要进行缩放的控件。

    二、实现缩放功能

    1.代码示例:

    #import "BBViewController.h"
    
    @interface BBViewController () <UIScrollViewDelegate>
    {
        UIScrollView *_scrollview;
        UIImageView *_imageview;
    }
    @end
    
    @implementation BBViewController
    
    - (void)viewDidLoad
    {
        [super viewDidLoad];
        
        //1添加 UIScrollView
        //设置 UIScrollView的位置与屏幕大小相同
        _scrollview=[[UIScrollView alloc]initWithFrame:self.view.bounds];
        [self.view addSubview:_scrollview];
        
        //2添加图片
        //有两种方式
        //(1)一般方式
    //    UIImageView  *imageview=[[UIImageView alloc]init];
    //    UIImage *image=[UIImage imageNamed:@"minion"];
    //    imageview.image=image;
    //    imageview.frame=CGRectMake(0, 0, image.size.width, image.size.height);
        
        //(2)使用构造方法
        UIImage *image=[UIImage imageNamed:@"minion"];
        _imageview=[[UIImageView alloc]initWithImage:image];
        //调用initWithImage:方法,它创建出来的imageview的宽高和图片的宽高一样
        [_scrollview addSubview:_imageview];
        
        //设置UIScrollView的滚动范围和图片的真实尺寸一致
        _scrollview.contentSize=image.size;
        
        
        //设置实现缩放
        //设置代理scrollview的代理对象
        _scrollview.delegate=self;
        //设置最大伸缩比例
        _scrollview.maximumZoomScale=2.0;
        //设置最小伸缩比例
        _scrollview.minimumZoomScale=0.5;
        
    }
    
    //告诉scrollview要缩放的是哪个子控件
    -(UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
    {
        return _imageview;
    }
    
    @end```
    
    
    2.代码说明
    
    实现缩放功能的4个步骤:
    
    

    (1)为scrollview设置代理(self)

    (2)让控制器遵守scrollview的代理协议

    (3)调用代理方法,返回需要实现缩放功能的子控件

    (4)设置缩放的范围(最大和最小比例)```

    3.思路:

    a.需要告诉scrollview要缩放的时哪一个子控件,这里为scrollview内部的imageview控件
    
    b.谁来告诉scr```
    
    
    
    ###三、补充知识
    
    - 两种实例化UIImageView的方法:
    
    第一种:
    
    
    UIImageView  *imageview=[[UIImageView alloc]init];
    
    UIImage *image=[UIImage imageNamed:@"minion"];
    
    imageview.image=image;
    
    imageview.frame=CGRectMake(0, 0, image.size.width, image.size.height);```
    

    第二种:

        UIImage *image=[UIImage imageNamed:@"minion"];
    
        _imageview=[[UIImageViewalloc]initWithImage:image];
    
        //调用initWithImage:方法,它创建出来的imageview的宽高和图片的宽高一样
    
        [_scrollviewaddSubview:_imageview];```
    
    
    
    ###四、跟缩放相关的其他代理方法
    
    
    缩放完毕的时候调用 :
    
    • (void)scrollViewWillBeginZooming:(UIScrollView *)scrollView withView:(UIView *)view;```

    正在缩放的时候调用:

    - (void)scrollViewDidZoom:(UIScrollView *)scrollView;```

    相关文章

      网友评论

        本文标题:UIScrollView控件实现图片缩放功能☀️

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