一. 实现功能

两个手指捏合,可以放大或者缩小图片.

二.原理说明

1. 实现缩放功能的四个步骤

(1) 让控制器遵守代理协议

(2) 让scrollView设置代理 self

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

(4) 设置缩放比例

2.补充: 跟缩放相关的代理方法

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

(2)  - (void)scrollViewDidZoom:(UIScrollView *)scrollView

三. 代码部分 (可以直接复制使用)

#import "ThirdViewController.h"
#import "Masonry.h" @interface ThirdViewController () <UIScrollViewDelegate> @property (nonatomic, strong) UIScrollView * scrollView; @property (nonatomic, strong) UIImage * image; @property (nonatomic, strong) UIImageView * imageView; @end @implementation ThirdViewController #pragma mark - 生命周期
#pragma mark viewDidLoad
- (void)viewDidLoad
{
[super viewDidLoad]; [self basicSetting]; [self addscrollView]; [self addImageView];
} #pragma mark - 系统代理 #pragma mark 返回需要缩放的子控件
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
{
return self.imageView;
} #pragma mark - 实现方法
#pragma mark 基本设置
- (void)basicSetting
{
self.title = @"UIScrollView-图片放大";
} - (void)addscrollView
{
[self.view addSubview:self.scrollView];
[self.scrollView mas_makeConstraints:^(MASConstraintMaker *make) { make.edges.mas_equalTo(self.view).with.insets(UIEdgeInsetsMake(, , , ));
}];
} - (void)addImageView
{
[self.scrollView addSubview:self.imageView];
[self.imageView mas_makeConstraints:^(MASConstraintMaker *make) { make.left.mas_equalTo(self.scrollView);
make.width.mas_equalTo(self.view.bounds.size.width);
make.top.mas_equalTo(self.scrollView);
make.height.mas_equalTo([UIScreen mainScreen].bounds.size.height);
}];
} #pragma mark - setter & getter - (UIScrollView *)scrollView
{
if (!_scrollView)
{
self.scrollView = [[UIScrollView alloc] init];
self.scrollView.backgroundColor = [UIColor orangeColor]; // 设置最大拉伸比例
self.scrollView.maximumZoomScale = 2.0f; // 设置最小缩放比例
self.scrollView.minimumZoomScale = 0.5f; // 设置scrollview 的滚动范围和图片真实尺寸一致
self.scrollView.contentSize = self.image.size; self.scrollView.delegate = self;
}
return _scrollView;
} - (UIImage *)image
{
if (!_image)
{
self.image = [UIImage imageNamed:@"红妹子"];
}
return _image;
} - (UIImageView *)imageView
{
if (!_imageView)
{
self.imageView = [[UIImageView alloc] init];
self.imageView.image = self.image;
}
return _imageView;
} @end

iOS-UIScrollView-图片缩放的更多相关文章

  1. 【iOS】图片缩放动画

    iOS 开发中,可用 UIView 的下述方法实现图片的缩放动画效果: + transitionWithView:duration:options:animations:completion: 示例代 ...

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

    iOS开发UI篇—UIScrollView控件实现图片缩放功能 一.缩放 1.简单说明: 有些时候,我们可能要对某些内容进行手势缩放,如下图所示 UIScrollView不仅能滚动显示大量内容,还能对 ...

  3. iOS开发基础-UIScrollView实现图片缩放

    当用户在 UIScrollView 上使用捏合手势时, UIScrollView 会给 UIScrollViewDelegate 协议发送一条消息,并调用代理的 viewForZoomingInScr ...

  4. ios 利用UIScrollView实现图片缩放

    前言:我们希望做出的效果是,实现图片的分页滑动,且每张图片都可以双击或用手指捏合来缩放大小.上一篇讲解UIGestureRecognizer的中,我们介绍的UIPinchGestureRecogniz ...

  5. UIScrollView 之图片缩放

    UIScrollView 之图片缩放 有些时候,我们可能要对某些内容进行手势缩放,如下图所示 UIScrollView不仅能滚动显示大量内容,还能对其内容进行缩放处理 也就是说,要完成缩放功能的话,只 ...

  6. iOS裁剪,缩放图片白边问题解决办法

    几年没来了,感觉还是要写点啥,以后碰见问题 解决就写这吧,当是一个随时的笔记也好. iOS裁剪,缩放图片的代码网上也很多了,但是笔者出现了右边和下边出现白边的情况.出现白边的原因是给的size中的CG ...

  7. ios 改变图片大小缩放方法

    http://www.cnblogs.com/zhangdadi/archive/2012/11/17/2774919.html http://bbs.csdn.net/topics/39089858 ...

  8. iOS开发-UIScrollView图片无限循环

    关于UIScrollView图片浏览的例子有很多,之前也写过类似方面的文章,关于UIScrollView的图片循环在新闻类的App基本上是比较常见的一种情况就是图片浏览,然后根据不同的图片显示不同的内 ...

  9. iOS - UIScrollView

    前言 NS_CLASS_AVAILABLE_IOS(2_0) @interface UIScrollView : UIView <NSCoding> @available(iOS 2.0, ...

  10. iOS:图片相关(18-02-12更)

    1.图片显示相关 1).图片聊天背景拉伸不失真 2).捏合.双击.下拉缩放 3).Banner.相册 4).动画 2.图片操作相关 1).获取.下载图片(分享.传图片用) 2).保存UIImage到本 ...

随机推荐

  1. 转:Hide data inside pointers(在指针中隐藏数据)

    该文介绍了如何使用指针中一些未使用的位来隐藏一些数据. When we write C code, pointers are everywhere. We can make a little extr ...

  2. 努力学习 HTML5 (3)—— 改造传统的 HTML 页面

    要了解和熟悉 HTML5 中的新的语义元素,最好的方式就是拿一经典的 HTML 文档作例子,然后把 HTML5 的一些新鲜营养充实进入.如下就是我们要改造的页面,该页面很简单,只包含一篇文章. Apo ...

  3. 【转】使用Cocoapods创建私有podspec

    Cocoapods是非常好用的一个iOS依赖管理工具,使用它可以方便的管理和更新项目中所使用到的第三方库,以及将自己的项目中的公共组件交由它去管理.Cocoapods的介绍及优点本文就不在赘述,我开始 ...

  4. Android 图片的裁剪与相机调用

    有时候我们需要的图片并不适合我们想要的大小, 那么我们就可以用到系统自带的图片裁剪功能, 把规定范围的图像给剪出来. 贴上部分代码: //调用图库 Intent intent = new Intent ...

  5. Sicily 3913. 阶乘之和

    http://soj.me/3913 一开始被它的数据吓到了,还以为很复杂,但想清楚之后,确实是比较简单的,你只需要算到 24! 就行了,大于 24 的时候答案永远是 940313,因为我们是对 10 ...

  6. 互联网的寒冬来了,BAT都不社招了

    一 总理上次来到创业街,是四个月,要不就是五个月前了. 之后,全国创业形势一路走红,锣鼓喧天鞭炮齐鸣.大众创业万众创新,颇有大炼钢铁亩产万斤之势,尤其在媒体上. 再之后,2015 进入下半年,风投圈的 ...

  7. 3D立体显示大屏幕拼接视频墙系统解决方案【转】

    http://shop.souvr.com/thread-123416-1-1.html 随着3D立体视像.全息影像等技术不断取得突破性进展,国内外越来越多的公司投身3D显示领域,产品层出不穷.3D技 ...

  8. LCLFramework框架之Repository模式

    Respository模式在示例中的实际目的小结一下 Repository模式是架构模式,在设计架构时,才有参考价值: Repository模式主要是封装数据查询和存储逻辑: Repository模式 ...

  9. 使用cocos2d-x v3.1开发小游戏(基本框架)

    小游戏的组成 欢迎界面 在游戏资源未全部加载完之前就需要载入,避免进入游戏会有一段黑屏时间. 可以用来展示游戏名称或者开发者logo. 开始菜单界面 一般用于显示游戏名称和关卡选择(或者称游戏难度选择 ...

  10. IIS服务器下做301永久重定向设置方法

    实现方法如下: 1.新建一个站点,对应目录如E:\wwwroot\301web.该目录下只需要1个文件,即index.html或者加个404.htm.绑定要跳转的域名,如图: 2.在IIS中选中刚才我 ...