iOS开发UI篇—UIScrollView控件实现图片缩放功能

iOS开发UI篇—UIScrollView控件实现图片缩放功spa

1、缩放代理

1.简单说明:code

有些时候,咱们可能要对某些内容进行手势缩放,以下图所示对象

 

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

2.缩放原理图片

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

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

2、实现缩放功能io

1.代码示例:class

复制代码

#import "YYViewController.h"

@interface YYViewController () <UIScrollViewDelegate>
{
UIScrollView *_scrollview;
UIImageView *_imageview;
}
@end

@implementation YYViewController

- (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.谁来告诉scrollview缩放哪个控件?代理

3、补充知识

两种实例化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];

4、跟缩放相关的其余代理方法

缩放完毕的时候调用 

- (void)scrollViewWillBeginZooming:(UIScrollView *)scrollView withView:(UIView *)view

正在缩放的时候调用

- (void)scrollViewDidZoom:(UIScrollView *)scrollView

相关文章
相关标签/搜索