一、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. ORA-01810: 格式代码出现两次

    今天在修改SQL语句的时候遇到这个小问题,提示的还是比较明显的,当然解决之道我是从百度上摘取的! 错误语句段:AND V.UPLOAD_DATE <=TO_DATE ('2013-11-11 2 ...

  2. 洛谷P1930 亚瑟王的宫殿 Camelot

    P1930 亚瑟王的宫殿 Camelot 19通过 53提交 题目提供者JOHNKRAM 标签USACO 难度提高+/省选- 提交  讨论  题解 最新讨论 暂时没有讨论 题目描述 很久以前,亚瑟王和 ...

  3. 【Linux】Linux字体颜色

    转自:http://onlyzq.blog.51cto.com/1228/546459 echo显示带颜色,需要使用参数-e格式如下:echo -e "\033[字背景颜色;文字颜色m字符串 ...

  4. Groovy轻松入门——搭建Groovy开发环境

    摘自: http://www.blogjava.net/BlueSUN/archive/2007/03/17/104391.html Groovy轻松入门--搭建Groovy开发环境 多日来,我发表了 ...

  5. 1Android系统移植与驱动开发概述

    1.Android系统架构分为四层,从下至上依次为Linux内核层,C/C++代码库.Android SDK API.应用程序,要熟悉每一层的内容以及功能: 2.Android移植分为应用移植和系统移 ...

  6. Java Swing打猎射击游戏源码

    代码如下 <font size="3">package Game; import java.awt.Graphics; import java.awt.Image; i ...

  7. 面向初学者的 Windows 10 UWP 应用开发

    眼看 Windows 10 for Mobile 正式版也快要推送了,就先挖个坑吧,原文视频链接为:Windows 10 development for absolute beginners,以下博客 ...

  8. CentOS 6破解Mysql5.5的办法

    首先,你必须要有操作系统的root权限了.要是连系统的root权限都没有的话,先考虑root系统再走下面的步骤.类似于安全模式登录系统,有人建议说是pkill mysql,但是我不建议哈.因为当你执行 ...

  9. [leetcode]_Same Tree

    第一次遇见Tree的题,拿到心慌,网上查了解题思路.写完就三行.. 最近努力学习一句话,学会喜欢自己. 题目:give two tree , you must judge if they are th ...

  10. Vue.js学习 Item13 – 指令系统与自定义指令

    基础 除了内置指令,Vue.js 也允许注册自定义指令.自定义指令提供一种机制将数据的变化映射为 DOM 行为. 可以用 Vue.directive(id, definition) 方法注册一个全局自 ...