终于效果图:

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. 我是怎么用FullCalendar记录我的2013年(辞职N次,面试2N次)的,它还兼容IE6

    地址:wanshanshan.com中的”日程“功能 喜欢就点击我吧 流程介绍  ここはじまる! 前端采用javascriptMVC框架:控制器C,模型M,视图V ,控制器控制着视图和模型之间的联系和 ...

  2. Could not load file or assembly 'AjaxControlToolkit' or one of its dependencies

    Could not load file or assembly 'AjaxControlToolkit' or one of its dependencies. API 调用退出异常. (Except ...

  3. Leetcode30--->Substring with Concatenation of All Words(主串中找出连接给定所有单词的子串的位置)

    题目:给定一个字符串S(主串),一个字符串数组words,其中的字符串的长度相同.找到所有的子串位置,要求是words中字符串的一个连接: 举例: For example, given:s: &quo ...

  4. 计算n的阶乘(n!)末尾0的个数

    题目: 给定一个正整数n,请计算n的阶乘n!末尾所含有“0”的个数. 举例: 5!=120,其末尾所含有的“0”的个数为1: 10!= 3628800,其末尾所含有的“0”的个数为2: 20!= 24 ...

  5. 浮动 float

    1.未设浮动属性,位于标准流中 2.如果设置浮动属性,则容器不再位于标准流中,不再占用空间.容器会根据内容确定宽度 3.尽量将搜索引擎要搜索的内容放到网页的前部,更要容易排名到 4.clear属性清除 ...

  6. 九度oj 题目1482:玛雅人的密码 清华大学机试

    题目描述: 玛雅人有一种密码,如果字符串中出现连续的2012四个数字就能解开密码.给一个长度为N的字符串,(2=<N<=13)该字符串中只含有0,1,2三种数字,问这个字符串要移位几次才能 ...

  7. Spring 依赖注入(二、注入参数)

    注入参数基本分7类: 1.基本类型值 2.注入bean 3.内部bean 4.注入null值 5.级联属性 6.List,Set,Map集合的注入 7.properties文件的注入(和集合注入基本是 ...

  8. Welcome-to-Swift-06函数(Functions)

    函数是执行特定任务的代码自包含块.给定一个函数名称标识, 当执行其任务时就可以用这个标识来进行"调用". Swift的统一的功能语法足够灵活来表达任何东西,无论是甚至没有参数名称的 ...

  9. 【bzoj3170】[Tjoi 2013]松鼠聚会 旋转坐标系

    题目描述 有N个小松鼠,它们的家用一个点x,y表示,两个点的距离定义为:点(x,y)和它周围的8个点即上下左右四个点和对角的四个点,距离为1.现在N个松鼠要走到一个松鼠家去,求走过的最短距离. 输入 ...

  10. 刷题总结——拆网线(noip模拟 贪心)

    题目: 给定一颗树··在保证有k个点与其它点连接的情况下问最少保留多少条边···· 树的节点树n和k均小于100000: 题解: 很容易看出来我们要尽量保留那种一条边连两个节点的情况···· 然后考试 ...