iOS开发UI篇—UIScrollView控件实现图片缩放功能
iOS开发UI篇—UIScrollView控件实现图片缩放功能
一、缩放
1.简单说明:
有些时候,我们可能要对某些内容进行手势缩放,如下图所示
UIScrollView不仅能滚动显示大量内容,还能对其内容进行缩放处理。也就是说,要完成缩放功能的话,只需要将需要缩放的内容添加到UIScrollView中
2.缩放原理
当用户在UIScrollView身上使用捏合手势时,UIScrollView会给代理发送一条消息,询问代理究竟要缩放自己内部的哪一个子控件(哪一块内容)
当用户在UIScrollView身上使用捏合手势时,UIScrollView会调用代理的viewForZoomingInScrollView:方法,这个方法返回的控件就是需要进行缩放的控件。
二、实现缩放功能
1.代码示例:
1 #import "YYViewController.h" 2 3 @interface YYViewController () <UIScrollViewDelegate> 4 { 5 UIScrollView *_scrollview; 6 UIImageView *_imageview; 7 } 8 @end 9 10 @implementation YYViewController 11 12 - (void)viewDidLoad 13 { 14 [super viewDidLoad]; 15 16 //1添加 UIScrollView 17 //设置 UIScrollView的位置与屏幕大小相同 18 _scrollview=[[UIScrollView alloc]initWithFrame:self.view.bounds]; 19 [self.view addSubview:_scrollview]; 20 21 //2添加图片 22 //有两种方式 23 //(1)一般方式 24 // UIImageView *imageview=[[UIImageView alloc]init]; 25 // UIImage *image=[UIImage imageNamed:@"minion"]; 26 // imageview.image=image; 27 // imageview.frame=CGRectMake(0, 0, image.size.width, image.size.height); 28 29 //(2)使用构造方法 30 UIImage *image=[UIImage imageNamed:@"minion"]; 31 _imageview=[[UIImageView alloc]initWithImage:image]; 32 //调用initWithImage:方法,它创建出来的imageview的宽高和图片的宽高一样 33 [_scrollview addSubview:_imageview]; 34 35 //设置UIScrollView的滚动范围和图片的真实尺寸一致 36 _scrollview.contentSize=image.size; 37 38 39 //设置实现缩放 40 //设置代理scrollview的代理对象 41 _scrollview.delegate=self; 42 //设置最大伸缩比例 43 _scrollview.maximumZoomScale=2.0; 44 //设置最小伸缩比例 45 _scrollview.minimumZoomScale=0.5; 46 47 } 48 49 //告诉scrollview要缩放的是哪个子控件 50 -(UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView 51 { 52 return _imageview; 53 } 54 55 @end
View Code
2.代码说明
实现缩放功能的4个步骤
(1)为scrollview设置代理(self)
(2)让控制器遵守scrollview的代理协议
(3)调用代理方法,返回需要实现缩放功能的子控件
(4)设置缩放的范围(最大和最小比例)
3.思路:
a.需要告诉scrollview要缩放的时哪一个子控件,这里为scrollview内部的imageview控件
b.谁来告诉scrollview缩放哪一个控件?代理
三、补充知识
两种实例化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
转载于:https://www.cnblogs.com/dondre/p/4092277.html
iOS开发UI篇—UIScrollView控件实现图片缩放功能相关推荐
- iOS开发UI篇—UIScrollView控件介绍
iOS开发UI篇-UIScrollView控件介绍 一.知识点简单介绍 1.UIScrollView控件是什么? (1)移动设备的屏幕⼤大⼩小是极其有限的,因此直接展⽰示在⽤用户眼前的内容也相当有限 ...
- iOS开发UI篇—UITableview控件基本使用
iOS开发UI篇-UITableview控件基本使用 一.一个简单的英雄展示程序 NJHero.h文件代码(字典转模型) 1 #import <Foundation/Foundation.h&g ...
- iOS开发UI篇—UITableview控件使用小结
iOS开发UI篇-UITableview控件使用小结 一.UITableview的使用步骤 UITableview的使用就只有简单的三个步骤: 1.告诉一共有多少组数据 方法:- (NSInteger ...
- android缩放组件,Android控件实现图片缩放功能
1 简介 先来一张效果图 TIM图片.gif 上图中灰色的一块是ImageView控件,ImageView中的图片进行左右上下移动,以及双指缩放. 对于android控件的缩放移动,点这里----an ...
- iOS UI-UIScrollView控件实现图片缩放功能
一.缩放 1.简单说明: 有些时候,我们可能要对某些内容进行手势缩放,如下图所示 UIScrollView不仅能滚动显示大量内容,还能对其内容进行缩放处理.也就是说,要完成缩放功能的话,只需要将需要缩 ...
- iOS开发UI篇--UIScrollView思维导图[不断更新]
转载于:https://www.cnblogs.com/qiling/p/4833879.html
- android tableview实现多选功能,iOS开发UI篇-tableView在编辑状态下的批量操作(多选)...
先看下效果图 直接上代码 #import "MyController.h" @interface MyController () { UIButton *button; } @pr ...
- iOS开发UI篇—Date Picker和UITool Bar控件简单介绍
iOS开发UI篇-Date Picker和UITool Bar控件简单介绍 一.Date Picker控件 1.简单介绍: Date Picker显示时间的控件 有默认宽高,不用设置数据源和代理 如何 ...
- iOS开发UI篇—实现UITableview控件数据刷新
iOS开发UI篇-实现UITableview控件数据刷新 一.项目文件结构和plist文件 二.实现效果 1.说明:这是一个英雄展示界面,点击选中行,可以修改改行英雄的名称(完成数据刷新的操作). 运 ...
- IOS开发UI篇—导航控制器属性和基本使用
IOS开发UI篇-导航控制器属性和基本使用 一.导航控制器的一些属性和基本使用 1.把子控制器添加到导航控制器中的四种方法 (1) 1.创建一个导航控制器 UINavigationController ...
最新文章
- java基础-java反射机制
- C语言 | 卡尔曼滤波算法2——算法分析
- wxWidgets:多线程概述
- CCF201512-1 数位之和(100分)
- 毕业设计——如何画系统功能结构图?
- git 报错did not match any file(s) known to git
- 椭圆曲线的加密算法解析和程序设计—基于python语言
- 主成分分析(PCA)原理、步骤
- 视频会议实现方式有哪些
- [Apache Kafka 3.2源码解析系列]-2-Kaka高性能高可用设计原理
- 秀米 ueditor 远程抓图到本地 问题结合
- linux系统连接不上wifi
- 建立高效的团队,可以做这七件事
- PTA解封日期C语言
- win10桌面图标有个白板,怎么去掉
- html select 样式t调整_css修改html select下拉框样式(含右边箭头)
- 3.Python数据分析项目——工资分类预测
- 控件注册失败原因汇集
- 金欣怡《小学语文低年级趣味写话的实践与研究》开题报告
- 使用小程序实现识别图像文字并提取