一、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. USACO Section 3.2 香甜的黄油 Sweet Butter

    本题是多源最短路问题 但使用弗洛伊德算法会超时 而因为边数目比较少 所以用队列优化后的迪杰斯特拉算法可以通过 #include<iostream> #include<cstring& ...

  2. 如何使用编辑模板在ASPxGridView中进行新增修改(除去常规的gridviw模板编辑外)

    aspgridview模板编辑效果图: //前端代码:(核心: <Templates><EditForm>.....中间可用栅格样式布局等(随意)...</Templat ...

  3. VS2010插件及快捷键设置

    几个常用的Visual Studio插件,番茄助手以及如下的插件,具体作用可用通过Google自行获取. 安装番茄助手后,可用在源文件和头文件中快速切换.但为了更方便使用,建议设置快捷键. vs201 ...

  4. js中的条件语句

    //js中的条件语句 ; //example1 单分支语句 ){ console.log("你已经不年轻了!"); }else{ console.log("你依然很有活力 ...

  5. 571亿背后:DRC助阿里实现异地双活

    571亿背后:DRC助阿里实现异地双活 赶集网SQL自动上线

  6. 【MySQL】MySQL索引背后的之使用策略及优化【转】

    转自:http://database.ctocio.com.cn/353/11664853.shtml 另外很不错的对于索引及索引优化的文章: http://www.cnblogs.com/magia ...

  7. C# 反射操作方法

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.R ...

  8. iOS常用插件

    iOS常用插件总结:http://blog.csdn.net/oik_ios/article/details/50251191http://www.jianshu.com/p/d24eea8b405a ...

  9. 在vs2005中使用AnkhSvn服务端IP改变无法连接

    1.打开VS2005,选择文件-->Subversion-->Pending Changes 2.在弹出的对话框中 选择other. 荆州古城

  10. XCode 7.1 安装 Alcatraz包管理器失败的处理

    按照官方的文档(https://github.com/supermarin/Alcatraz),先卸载再重新安装即可.步骤如下: 1. 退出Xcode 2. rm -rf ~/Library/Appl ...