iOS-UIScrollView-图片缩放
一. 实现功能
两个手指捏合,可以放大或者缩小图片.
二.原理说明
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-图片缩放的更多相关文章
- 【iOS】图片缩放动画
iOS 开发中,可用 UIView 的下述方法实现图片的缩放动画效果: + transitionWithView:duration:options:animations:completion: 示例代 ...
- iOS开发UI篇—UIScrollView控件实现图片缩放功能
iOS开发UI篇—UIScrollView控件实现图片缩放功能 一.缩放 1.简单说明: 有些时候,我们可能要对某些内容进行手势缩放,如下图所示 UIScrollView不仅能滚动显示大量内容,还能对 ...
- iOS开发基础-UIScrollView实现图片缩放
当用户在 UIScrollView 上使用捏合手势时, UIScrollView 会给 UIScrollViewDelegate 协议发送一条消息,并调用代理的 viewForZoomingInScr ...
- ios 利用UIScrollView实现图片缩放
前言:我们希望做出的效果是,实现图片的分页滑动,且每张图片都可以双击或用手指捏合来缩放大小.上一篇讲解UIGestureRecognizer的中,我们介绍的UIPinchGestureRecogniz ...
- UIScrollView 之图片缩放
UIScrollView 之图片缩放 有些时候,我们可能要对某些内容进行手势缩放,如下图所示 UIScrollView不仅能滚动显示大量内容,还能对其内容进行缩放处理 也就是说,要完成缩放功能的话,只 ...
- iOS裁剪,缩放图片白边问题解决办法
几年没来了,感觉还是要写点啥,以后碰见问题 解决就写这吧,当是一个随时的笔记也好. iOS裁剪,缩放图片的代码网上也很多了,但是笔者出现了右边和下边出现白边的情况.出现白边的原因是给的size中的CG ...
- ios 改变图片大小缩放方法
http://www.cnblogs.com/zhangdadi/archive/2012/11/17/2774919.html http://bbs.csdn.net/topics/39089858 ...
- iOS开发-UIScrollView图片无限循环
关于UIScrollView图片浏览的例子有很多,之前也写过类似方面的文章,关于UIScrollView的图片循环在新闻类的App基本上是比较常见的一种情况就是图片浏览,然后根据不同的图片显示不同的内 ...
- iOS - UIScrollView
前言 NS_CLASS_AVAILABLE_IOS(2_0) @interface UIScrollView : UIView <NSCoding> @available(iOS 2.0, ...
- iOS:图片相关(18-02-12更)
1.图片显示相关 1).图片聊天背景拉伸不失真 2).捏合.双击.下拉缩放 3).Banner.相册 4).动画 2.图片操作相关 1).获取.下载图片(分享.传图片用) 2).保存UIImage到本 ...
随机推荐
- 禁用iOS的UIView长按默认操作
* { -webkit-touch-callout: none; -webkit-user-select: none; -webkit-tap-highlight-color: rg ...
- 使用Enitity Framework实现增删改查服务中的一些通用思路
添加 → 方法参数中有一个有关添加视图模型类型的形参,比如vm→ 根据vm的某个属性,比如Name判断在上下文中是否存在,如果不存在就抛EntityNotFoundException异常→ 判断vm所 ...
- C++ 虚函数在基类与派生类对象间的表现及其分析
近来看了侯捷的<深入浅出MFC>,读到C++重要性质中的虚函数与多态那部分内容时,顿时有了疑惑.因为书中说了这么一句:使用“基类之指针”指向“派生类之对象”,由该指针只能调用基类所定义的函 ...
- MYSQL INSERT INTO SELECT 不插入重复数据
INSERT INTO `b_common_member_count` (uid) SELECT uid FROM `b_common_member` WHERE uid NOT IN (SELECT ...
- 搞不清FastCgi与PHP-fpm之间是个什么样的关系(转载)
刚开始对这个问题我也挺纠结的,看了<HTTP权威指南>后,感觉清晰了不少. 首先,CGI是干嘛的?CGI是为了保证web server传递过来的数据是标准格式的,方便CGI程序的编写者. ...
- NSXMLParser读取XML文件并将数据显示到TableView上
关于XML,有两种解析方式,分别是SAX(Simple API for XML,基于事件驱动的解析方式,逐行解析数据,采用协议回调机制)和DOM(Document Object Model ,文档对象 ...
- Pro ASP.NET MVC –第六章 MVC的基本工具
在本章,我们将介绍每个MVC程序员"武器库"的三个重要工具:依赖注入容器.单元测试框架和mock工具.在本书,对于三个工具分别都只用了一种方式实现,但每个工具都还有其他的实现方式. ...
- SQL SERVER 服务启动后停止,某些服务由其它服务或程序使用时将自动停止
发生症状: 先是服务器挂掉,之后服务器可以登陆,但是实例却不能登陆进去(部分).出现的错误日志如下: :: R2 (SP2) - 10.50.4000.0 (X64) Jun :: Copyright ...
- windows 程序设计自学:添加图标资源
#include <windows.h> #include "resource.h" LRESULT CALLBACK MyWndProc( HWND hwnd, // ...
- PyCharm4注册码--软件安装
软件连接:http://www.jetbrains.com/pycharm/ PyCharm4注册码 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 ...