终于效果图:

BeyondViewController.h

//
// BeyondViewController.h
// 7_scrollView大图展示
//
// Created by beyond on 14-7-24.
// Copyright (c) 2014年 com.beyond. All rights reserved.
// #import <UIKit/UIKit.h> @interface BeyondViewController : UIViewController
- (IBAction)upBtnClick:(id)sender; @end

BeyondViewController.m

//
// BeyondViewController.m
// 7_scrollView大图展示
//
// Created by beyond on 14-7-24.
// Copyright (c) 2014年 com.beyond. All rights reserved.
// #import "BeyondViewController.h" @interface BeyondViewController ()<UIScrollViewDelegate>
{
UIScrollView *_scrollView; // 要缩放的是内部的哪一个控件
UIImageView *_imgView;
} @end @implementation BeyondViewController - (void)viewDidLoad
{
[super viewDidLoad];
// UIImageView
// 1,类方法创建控件
// UIImageView *imgView = [[UIImageView alloc]init];
// 2,控件细节
// NSString *imgName = [NSString stringWithFormat:@"HD.jpg"];
// imgView.image = [UIImage imageNamed:imgName];
// CGFloat imgW = imgView.image.size.width;
// CGFloat imgH = imgView.image.size.height;
// imgView.frame = CGRectMake(0, 0, imgW, imgH); // 或者高速创建,一句顶上面的6句代码
_imgView = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"HD.jpg"]]; // 1,实例化UIScrollView
_scrollView = [[UIScrollView alloc]init];
// 2,设置scrollView的可视大小,内容大小,等属性
// _scrollView.frame = CGRectMake(0, 0, 320, 480);
_scrollView.frame = self.view.bounds;
_scrollView.contentSize = _imgView.image.size; // 这个最重要,是滚动区域
_scrollView.showsHorizontalScrollIndicator = NO;
_scrollView.showsVerticalScrollIndicator = NO;
_scrollView.bouncesZoom = NO;
_scrollView.bounces = YES;
// scrollView.contentOffset是个点,x(左)和y(上),值是scrollView里面的大图片拖拽的位移,相对于scrollView的显示窗体的最左上角 // 上左下右 逆时针 到边界之后,回不去了,多出来的距离
// scrollView.contentInset = UIEdgeInsetsMake(5, 10, 20, 40);
// 3,将imgeView加入到scrollView
[_scrollView addSubview:_imgView];
// 4,将scrollView加入到self.view
// [self.view addSubview:_scrollView];
// 小bug解决,界面上的button被全然遮挡了
[self.view insertSubview:_scrollView atIndex:0]; /*
4.scrollView实现缩放(捏合手势)四步曲
1,设置代理 为 当前控制器
2,代理 尊守 协议 <UIScrollViewDelegate>
3,代理 实现 协议中的方法 viewForZoomingInScrollView,告诉scrollView要缩放的是它内部的哪一个控件
4,scrollView设置最大最小缩放比 就可以
*/
_scrollView.delegate = self;
_scrollView.minimumZoomScale = 0.3;
_scrollView.maximumZoomScale = 2.0; } // 代理 实现 协议中的方法,告诉scrollView要缩放的是它内部的哪一个控件
-(UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
{
return _imgView;
} - (IBAction)upBtnClick:(id)sender {
// scrollView.contentOffset是个点,x(左)和y(上),值是scrollView里面的大图片拖拽的位移,相对于scrollView的显示窗体的最左上角
[UIView animateWithDuration:0.3 animations:^{
// 下面三步为OC标准代码,由于OC中不同意直接修该对象中结构体属性的成员的值,要通过中间的暂时结构体变量
CGPoint offset = _scrollView.contentOffset;
if (offset.y + 80 >= _scrollView.contentSize.height - _scrollView.frame.size.height) {
return;
}
offset.y += 80;
_scrollView.contentOffset = offset;
}]; }
@end

scrollView的contentOffset

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcHJlX2VtaW5lbnQ=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

scrollView原理是通过拖拽其内部的大图片

iOS_7_scrollView大图缩放的更多相关文章

  1. Android开发技巧——大图裁剪

    本篇内容是接上篇<Android开发技巧--定制仿微信图片裁剪控件> 的,先简单介绍对上篇所封装的裁剪控件的使用,再详细说明如何使用它进行大图裁剪,包括对旋转图片的裁剪. 裁剪控件的简单使 ...

  2. php课程 8-32 如何使用gd库进行图片裁剪和缩放

    php课程 8-32 如何使用gd库进行图片裁剪和缩放 一.总结 一句话总结:图片缩放到图片裁剪就是改变原图截取的位置以及截取的宽高. 1.电商网站那么多的图片,如果全部加载卡得慢的很,所以他们是怎么 ...

  3. php四个常用类封装 :MySQL类、 分页类、缩略图类、上传类;;分页例子;

    Mysql类 <?php /** * Mysql类 */ class Mysql{ private static $link = null;//数据库连接 /** * 私有的构造方法 */ pr ...

  4. PHP常用封装类

    1.mysql.class.php <?php // namespace Package; /** * MySQL 类 * @author cxm <tsai.er6@gmail.com& ...

  5. HTML5 本地裁剪图片并上传至服务器(转)

    很多情况下用户上传的图片都需要经过裁剪,比如头像啊什么的.但以前实现这类需求都很复杂,往往需要先把图片上传到服务器,然后返回给用户,让用户确定裁剪坐标,发送给服务器,服务器裁剪完再返回给用户,来回需要 ...

  6. PHP课程十大 PHP图像处理功能和实现的验证码

    假如你喜欢这个博客,访问这个博客地址:http://blog.csdn.net/junzaivip 总结: gd绘图库: 数学函数 PHP图片处理函数 图片处理函数使用场景 1.验证码 2.缩放 3. ...

  7. php四个常用类封装

    这4个类分别是Mysql类. 分页类.缩略图类.上传类. Mysql类 <?php /** * Mysql类 */ class Mysql{ private static $link = nul ...

  8. HTML5 本地裁剪上传图片

    很多情况下用户上传的图片都需要经过裁剪,比如头像啊什么的.但以前实现这类需求都很复杂,往往需要先把图片上传到服务器,然后返回给用户,让用户确定裁剪坐标,发送给服务器,服务器裁剪完再返回给用户,来回需要 ...

  9. HTML5裁剪图片并上传至服务器实现原理讲解

    HTML5裁剪图片并上传至服务器实现原理讲解   经常做项目需要本地上传图片裁剪并上传服务器,比如会议头像等功能,但以前实现这类需求都很复杂,往往需要先把图片上传到服务器,然后返回给用户,让用户确定裁 ...

随机推荐

  1. 写iOS SDK注意事项

    转载http://www.devtang.com/blog/2015/01/31/write-sdk-tips/

  2. Flash中国地图 开放源码

    Flash中国地图,以Object为数据源,便于实现基于中国地图的可视化项目. 特征: swc,便于导入到Flex项目中 数据源为Object,比XML更方便 数据驱动的地图块颜色和Hover颜色 可 ...

  3. HDU-2234 无题I

    为每个状态定义两个函数S和H,分别表示当前状态到列一致和行一致的目标状态的最少操作次数. 然后有了估价函数F=Min(S,H)就可以IDA*了. #include <cstdio> #in ...

  4. BZOJ3507 [Cqoi2014]通配符匹配 【哈希 + 贪心】

    题目 几乎所有操作系统的命令行界面(CLI)中都支持文件名的通配符匹配以方便用户.最常见的通配符有两个,一个 是星号(""'),可以匹配0个及以上的任意字符:另一个是问号(&quo ...

  5. HDU 2767:Proving Equivalences(强连通)

    题意: 一个有向图,问最少加几条边,能让它强连通 方法: 1:tarjan 缩点 2:采用如下构造法: 缩点后的图找到所有头结点和尾结点,那么,可以这么构造:把所有的尾结点连一条边到头结点,就必然可以 ...

  6. 小程序 之使用HMACSHA1算法加密报文

    首先说说我们前端常用的加密技术, 我们常用的加密技术有:如MD5加密,base64加密 今天要说的是HMACSHA1加密技术 先介绍下什么是SHA1算法, 安全哈希算法(Secure Hash Alg ...

  7. windows下git使用

    一. 下载及安装 下载  git2.14.1 64bit https://git-for-windows.github.io/(官网下载不动) http://download.csdn.net/dow ...

  8. Codeforces 696E ...Wait for it...(树链剖分)

    题目链接  ...Wait for it... 考虑树链剖分. 对于树上的每个点开一个set,记录当前该节点上所有的girls. 每个节点初始的权值为set中的最小值. 询问的时候每次在路径上寻找最小 ...

  9. 多协议底层攻击工具Yesinia

    多协议底层攻击工具Yesinia   Yesinia是一款底层协议攻击工具.它提供多种运行模式,如终端文本模式.GTK图形模式.NCurses模式.守护进程模式.它利用各种底层协议的漏洞实施攻击,支持 ...

  10. SSM框架CRUD小案例

    1.数据库准备 部门tbl_dept 员工tbl_emp 建立员工和部门的外键 2.在IDEA创建SSM项目环境 2.1配置Web模块 最上面的图是错误示范,注意!!! 在Tomcat配置了项目路径, ...