iOS-UIScrollView-图片缩放
2016-05-31 20:19
501 查看
一. 实现功能
两个手指捏合,可以放大或者缩小图片.
二.原理说明
1. 实现缩放功能的四个步骤
(1) 让控制器遵守代理协议
(2) 让scrollView设置代理 self
(3) 调用代理方法, 返回需要实现缩放的子控件
(4) 设置缩放比例
2.补充: 跟缩放相关的代理方法
(1) - (void)scrollViewWillBeginZooming:(UIScrollView *)scrollView withView:(UIView *)view
(2) - (void)scrollViewDidZoom:(UIScrollView *)scrollView
三. 代码部分 (可以直接复制使用)
两个手指捏合,可以放大或者缩小图片.
二.原理说明
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(0, 0, 0, 0)); }]; } - (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
相关文章推荐
- Guice 注入--(privateModule,intall(),expose())
- lucene 文档评分 及 CustomScoreQuery
- Middle-题目96:187. Repeated DNA Sequences
- NSInvocationOperation、NSBlockOperation、NSOperationQueue
- Hbuider 同步github
- Middle-题目93:60. Permutation Sequence
- iOS IM开发建议(四)UIMenuController 怎么使用
- 图像检索大牛芮勇Yong Rui
- pat PAT (Advanced Level) Practise 1007. Maximum Subsequence Sum (25)
- 解决easyui propertygrid控件中,combobox控件(下拉框控件)回显value值的问题
- easyui datagridfilter插件的用法
- 远程服务器返回了意外响应: (413) Request Entity Too Large
- iOS 用UIWindow实现一个悬浮按钮或者全屏覆盖效果
- UITableView使用详解及技巧大全
- stringbuild和stringbuffer的区别
- UITableView优化技巧
- HBuilder 连接 夜神安卓模拟器
- UIPanelResetHelper(UIScrollView滚动复位)
- 【简介】利用Arduino和Coolpy设计网关 —— 开源项目Coolpy
- 阿里开源项目Druid