一、UIScrollView的创建和常用属性
     1、UIScrollView概述
  • UIScrollView是UIView的子类。
  • UIScrollView作为所有滚动视图的基类。
  • UIScrollView主要使用在滚动头条(轮播图),相册等常见的功能里。
     2、UIScrollView的创建
    #define kWidth self.frame.size.width
    #define kHeight self.frame.size.height
    // 创建一个和屏幕尺寸相同的UIScrollView
        self.scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(, , kWidth, kHeight)];
    // 设置背景颜色
        self.scrollView.backgroundColor = [UIColor yellowColor];
    // 添加到父视图
        [self addSubview:self.scrollView];
     3、contentSize滚动范围
  • UIScrollView用来控制滚动范围的重要属性contentSize,通过这个重要属性设置才可以控制视图的滚动,我们目标铺设3个屏幕宽度的图片,所以我们设置滚动范围是3个屏幕宽度
  • contentSize有两个参数,一个是width,另一个是height,分别设置两个值有不同的效果
// 水平方向滚动
self.scrollView.contentSize = CGSizeMake(kWidth * , );
, kHeight * ); 
     4、UIScrollView的属性
//设置UIScrollView的滚动范围之后,接下来用for循环的方式在scrollView平铺3张图片,注意每个imageView的位置
; i < ; i++) {
    UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake((i - ) * kWidth, , kWidth, kHeight)];
   imageView.image = [UIImage imageNamed:[NSString stringWithFormat:@“h%d.jpg”, i]];
   [scrollView addSubview:imageView];
}
//通过偏移量的设置可以让指定的视图显示出来(让哪张图片最先显示)
// 直接设置第二个视图显示在屏幕上
self.scrollView.contentOffset = CGPointMake(kWidth, );

//可以让ScrollVIew按页来滚动
self.scrollView.pagingEnabled = YES;

// 关闭水平方向滚动条
self.scrollView.showsHorizontalScrollIndicator = NO;

//关闭垂直方向滚动条
self.scrollView.showsVerticalScrollIndicator = NO;

//关闭边界回弹效果
self.scrollView.bounces = NO;

//设定一个tag值
self.scrollView.tag = ;

// 如果要有水平或垂直的回弹效果 scrollView的滚动范围需要设置为屏幕大小
    self.scrollView.alwaysBounceHorizontal = YES;
    self.scrollView.alwaysBounceVertical = YES;
  • 二、UIScrollView的协议方法
     1、UIScrollView协议方法
  • 一是监控滚动时候的状态。
  • 二是控制视图的缩放。
     2、
  • 触发顺序:BeginDragging->DidEndDragging->BeginDecelerating->DidEndDecelerating
 
     3、控制视图的缩放
// 设置缩放的最大比例
self.scrollView.maximumZoomScale = ;

// 设置缩放的最小比例
self.scrollView.minmumZoomScale = 0.5;

// 设置当前的比例
self.scrollView.zoomScale = ;
  • 当我们在ViewDidLoad方法里设置好最大和最小的缩放比例这两个属性之后我们就可以对视图进行缩放操作。
三、UIScrollView和UIPageControl的结合使用

iOS学习之UIScrollView的更多相关文章

  1. iOS学习笔记-精华整理

    iOS学习笔记总结整理 一.内存管理情况 1- autorelease,当用户的代码在持续运行时,自动释放池是不会被销毁的,这段时间内用户可以安全地使用自动释放的对象.当用户的代码运行告一段 落,开始 ...

  2. iOS学习笔记总结整理

    来源:http://mobile.51cto.com/iphone-386851_all.htm 学习IOS开发这对于一个初学者来说,是一件非常挠头的事情.其实学习IOS开发无外乎平时的积累与总结.下 ...

  3. 【转】 iOS学习之sqlite的创建数据库,表,插入查看数据

    原文:  http://blog.csdn.net/totogo2010/article/details/7702207 iOS sqlite数据库操作.步骤是: 先加入sqlite开发库libsql ...

  4. IOS学习笔记(四)之UITextField和UITextView控件学习

    IOS学习笔记(四)之UITextField和UITextView控件学习(博客地址:http://blog.csdn.net/developer_jiangqq) Author:hmjiangqq ...

  5. 2015最新iOS学习线路图

    iOS是由苹果公司开发的移动操作系统,以xcode为主要开发工具,具有简单易用的界面.令人惊叹的功能,以及超强的稳定性,已经成为iPhone.iPad 和iPod touch 的强大基础:iOS 内置 ...

  6. ios 学习路线总结

    学习方法 面对有难度的功能,不要忙着拒绝,而是挑战一下,学习更多知识. 尽量独立解决问题,而不是在遇到问题的第一想法是找人. 多学习别人开源的第三方库,能够开源的库一定有值得学习的地方,多去看别的大神 ...

  7. iOS学习-压缩图片(改变图片的宽高)

    压缩图片,图片的大小与我们期望的宽高不一致时,我们可以将其处理为我们想要的宽高. 传入想要修改的图片,以及新的尺寸 -(UIImage*)imageWithImage:(UIImage*)image ...

  8. 【原】iOS学习之事件处理的原理

    在iOS学习23之事件处理中,小编详细的介绍了事件处理,在这里小编叙述一下它的相关原理 1.UITouch对象 在触摸事件的处理方法中都会有一个存放着UITouch对象的集合,这个参数有什么用呢? ( ...

  9. iOS学习笔记——AutoLayout的约束

    iOS学习笔记——AutoLayout约束 之前在开发iOS app时一直以为苹果的布局是绝对布局,在IB中拖拉控件运行或者直接使用代码去调整控件都会发上一些不尽人意的结果,后来发现iOS在引入了Au ...

随机推荐

  1. CI 自动提交表单

    //coontrol $this->load->view ( '/' . $this->index_lang ['FOLDER'] . '/eprepag_form.php', $p ...

  2. onclicklistener到底怎么用?

    转载地址:http://blog.csdn.net/dickren123/article/details/7216975 相信很多像我一样的新手学习Android开发会遇到这个问题,通过这几天的归类和 ...

  3. 用Scrapy爬虫下载图片(豆瓣电影图片)

    用Scrapy爬虫的安装和入门教程,这里有,这篇链接的博客也是我这篇博客的基础. 其实我完全可以直接在上面那篇博客中的代码中直接加入我要下载图片的部分代码的,但是由于上述博客中的代码已运行,已爬到快九 ...

  4. Oracle笔记 目录索引

    Oracle笔记 一.oracle的安装.sqlplus的使用 Oracle笔记 二.常用dba命令行 Oracle笔记 三.function .select Oracle笔记 四.增删改.事务 Or ...

  5. grunt 快速入门

    Grunt和 Grunt 插件是通过 npm 安装并管理的,npm是 Node.js 的包管理器. Grunt 0.4.x 必须配合Node.js >= 0.8.0版本使用.:奇数版本号的 No ...

  6. css遇到的问题

    1.屏幕三部分自适应居中?(js没奏效) 2.背景透明内容也透明?

  7. 条款22 template method 模式

    template method 模式,模板方法模式 其实他和C++模板没有关系. 前者是提供的为派生类设计者提供清晰指示的一种方法,这个事实表示"如何去实现基类所规定的契约" 基类 ...

  8. C puzzles详解【38-45题】

    第三十八题 What is the bug in the following program? #include <stdlib.h> #include <stdio.h> # ...

  9. CentOS学习笔记--MySQL安装

    MySQL安装 Linux中使用最广泛的数据库就是MySQL,使用在线yum的方式安装的版本落后MySQL网站好几个小版本,本节亲自测试安装新版的MySQL. 测试机器环境: VMware Works ...

  10. 搭建高性能计算环境(七)、应用软件的安装之MS

    1,上传软件包MaterialsStudio70.tgz.msi_7.lic到服务器上. 2,安装ms一般会创建一个普通用户msi,软件安装在msi账号下. 创建用户msi: useradd msi ...