一、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. Android基础总结(8)——服务

    服务(Service)是Android中实现程序后台运行的解决方案,它非常适合用于去执行哪些不需要和用户交互而且还要长期运行的任务.服务的运行不依赖任何用户界面,即使当程序被切换到后台,或者用户打开了 ...

  2. 蛮考验基础的JS笔试题(有坑小心!)

    1.  考察this var length = 10 function fn(){ alert(this.length) } var obj = { length: 5, method: functi ...

  3. IRS-P6数据介绍

    IRS-P6发射于2003年10月17日,星上携带三个传感器:多光谱传感器LISS4和LISS3,以及高级广角传感器AWIFS.LISS3传感器具有四个光谱波段分别位于可见光.近红外与短波红外区域,空 ...

  4. 【MySQL】MySQL无基础学习和入门之一:数据库基础概述和实验环境搭建

    数据库基础概述  大部分互联网公司都选择MySQL作为业务数据存储数据库,除了MySQL目前还有很多公司使用Oracle(甲骨文).SQLserver(微软).MongoDB等. 从使用成本来区分可以 ...

  5. 简短总结一下C#里跨线程更新UI

    摘自: http://my.oschina.net/sdqxcxh/blog/53707 跨线程更新UI是写多线程程序尤其是通信类的程序经常遇到的问题,这里面主要的问题是冲突,比如数据线程想要更新UI ...

  6. iOS取证将如漫漫长夜

    日前因恐攻一案,FBI对一支已上锁的iPhone 5c束手无策,美国法院出具命令要求苹果配合,但被苹果公司执行长库克以维护安全及隐私为由悍然拒绝. 平心而论,各有其立场,但在一个犯罪案件之中,真的可以 ...

  7. SVN创建Tags

              右键trunk,选择分支/标记...           资源库,到URL:要创建Tag的位置           Next           Next             ...

  8. Largest palindrome product

    A palindromic number reads the same both ways. The largest palindrome made from the product of two 2 ...

  9. javaSE第二十三天

    第二十三天    338 1.进程和线程的概述    338 2.多线程(理解)    339 (1)多线程:一个应用程序有多条执行路径    339 (2)Java程序的运行原理及JVM的启动是多线 ...

  10. linux使用dd命令快速生成大文件

    dd命令可以轻易实现创建指定大小的文件,如 dd if=/dev/zero of=test bs=1M count=1000 会生成一个1000M的test文件,文件内容为全0(因从/dev/zero ...