普通的 UIView 不具备滚动功能,不能显示过多的内容。UIScrollView 是一个能够滚动的视图控件,可用来展示大量的内容。

   UIScrollView 的简单使用:

  1)将需要展示的内容添加到 UIScrollView 中;

  2)设置 UIScrollView 的 contentSize 属性,指定可滚动的范围。

可用属性:

  1) @property(nonatomic) CGPoint contentOffset; 表示 UIScrollView 滚动的位置。

  2) @property(nonatomic) CGSize contentSize; 表示 UIScrollView 的滚动范围。

  3) @property(nonatomic) UIEdgeInsets contentInset; 在 UIScrollView 的四周增加额外的滚动区域。

  4) @property(nonatomic) BOOL bounces; 设置 UIScrollView 是否需要弹簧效果。

  5) @property(nonatomic, getter=isScrollEnabled) BOOL scrollEnabled; 设置 UIScrollView 是否能滚动。

  6) @property(nonatomic) BOOL showsHorizontalScrollIndicator; 是否显示水平滚动条。

  7) @property(nonatomic) BOOL showsVerticalScrollIndicator; 是否显示垂直滚动条。

  如下为几个属性代表的坐标示意图:

  1) UIScrollView 的 frame 指可视范围, contentSize 是滚动范围。

  2) contentSize 属性只能使用代码设置。

 

实例演示:

  新建一个Single View Application,在 ViewController 类扩展中添加一个私有的 UIScrollView 属性,代码如下:

 //ViewController.m
@interface ViewController ()
{
UIScrollView *_scrollView;
}
@end

  修改 viewDidLoad 方法,实现 UIScrollView 的添加与显示:

 //ViewController.m
- (void)viewDidLoad {
[super viewDidLoad];
//创建UIScrollView
UIScrollView *scrollView = [[UIScrollView alloc] init];
scrollView.frame = CGRectMake(, , , );
scrollView.backgroundColor = [UIColor grayColor];
[self.view addSubview:scrollView]; //创建UIImageView
UIImageView *imageView = [[UIImageView alloc] init];
imageView.image = [UIImage imageNamed:@"picture.jpg"];
CGFloat imageWidth = imageView.image.size.width;
CGFloat imageHeight = imageView.image.size.height;
imageView.frame = CGRectMake(, , imageWidth, imageHeight);
[scrollView addSubview:imageView]; //设置UIScrollView的属性
scrollView.contentSize = imageView.image.size;
scrollView.showsHorizontalScrollIndicator = YES;
scrollView.showsVerticalScrollIndicator = YES;
scrollView.contentInset = UIEdgeInsetsMake(, , , );
_scrollView = scrollView;
}- (void)viewDidLoad {
[super viewDidLoad];
//创建UIScrollView
UIScrollView *scrollView = [[UIScrollView alloc] init];
scrollView.frame = CGRectMake(, , , );
scrollView.backgroundColor = [UIColor grayColor];
[self.view addSubview:scrollView]; //创建UIImageView
UIImageView *imageView = [[UIImageView alloc] init];
imageView.image = [UIImage imageNamed:@"picture.jpg"];
CGFloat imageWidth = imageView.image.size.width;
CGFloat imageHeight = imageView.image.size.height;
imageView.frame = CGRectMake(, , imageWidth, imageHeight);
[scrollView addSubview:imageView]; //设置UIScrollView的属性
scrollView.contentSize = imageView.image.size;
scrollView.showsHorizontalScrollIndicator = YES;
scrollView.showsVerticalScrollIndicator = YES;
scrollView.contentInset = UIEdgeInsetsMake(, , , );
_scrollView = scrollView;
}

参考博客:iOS开发UI篇—UIScrollView控件介绍

实例代码:http://pan.baidu.com/s/1i4rT6Nr

iOS开发基础-UIScrollView基础的更多相关文章

  1. iOS开发学习笔记:基础篇

    iOS开发需要一台Mac电脑.Xcode以及iOS SDK.因为苹果设备都具有自己封闭的环境,所以iOS程序的开发必须在Mac设备上完成(当然,黑苹果应该也是可以的,但就需要花很多的精力去折腾基础环境 ...

  2. 李洪强iOS开发之零基础学习iOS开发】【02-C语言】01-概述

    前面已经给大家介绍了iOS开发相关的一些基础知识,其实iOS开发就是开发iPhone\iPad上的软件,而要想开发一款软件,首先要学习程序设计语言.iOS开发需要学习的主要程序设计语言有:C语言.C+ ...

  3. iOS开发笔记系列-基础2(类)

    面向对象编程总是离不开类和对象的,Objective-C也不例外,不过Objective-C中的类还有一些自己的独特点. 类的声明和定义 在iOS开发中,类的声明与定义通常都是分开的,类得声明通常存放 ...

  4. iOS开发笔记系列-基础1(数据类型与表达式)

    学习iOS开发快两年了,去年完成MagViewer之后就因为公司的其他业务繁重,除了维护这个应用之外,只是断断续续地自己做一些实验开发,没有再发布新的应用,这里想整理一下学习过程中的笔记,以便加深印象 ...

  5. iOS开发中多线程基础

    耗时操作演练 代码演练 编写耗时方法 - (void)longOperation { for (int i = 0; i < 10000; ++i) { NSLog(@"%@ %d&q ...

  6. IOS科研IOS开发笔记学习基础知识

    这篇文章是我的IOS学习笔记,他们是知识的基础,在这里,根据记录的查询后的条款. 1,UIScrollView能完毕滚动的功能. 示比例如以下: UIScrollView *tableScrollVi ...

  7. 活到老学到老:iOS开发中的基础知识(一)

    本文参考 标哥的博客:宝库iOS开发笔试题 进行学习整理.与其说是看面试题,不如说是对自己知识的巩固.工欲善其事必先利其器,基础知识不牢固可能会导致编程中的一些注意不到的问题.总之一句话:活到老,学到 ...

  8. ios开发之网络基础

    1.网络访问的步骤 1> 建立NSURL 2> 建立NSURLRequest 3> 建立NSURLConnection 4> 开始连接 - (void)viewDidLoad ...

  9. 李洪强iOS开发之零基础学习iOS开发【02-C语言】03-关键字、标识符、注释

    上一讲中已经创建了第一个C语言程序,知道了C程序是由函数构成的,这讲继续学习C语言的一些基本语法.C语言属于一门高级语言,其实,所有的高级语言的基本语法组成部分都是一样的,只是表现形式不太一样.就好像 ...

随机推荐

  1. [十五]javaIO之SequenceInputStream

    功能简介   SequenceInputStream  合并流 顾名思义,就是可以吧两个流合并起来   他并没有很复杂,单纯的很,仅仅实现了InputStream 他拥有两个构造方法把两个InputS ...

  2. Springboot 系列(一)Spring Boot 入门篇

    注意:本 Spring Boot 系列文章基于 Spring Boot 版本 v2.1.1.RELEASE 进行学习分析,版本不同可能会有细微差别. 前言 由于 J2EE 的开发变得笨重,繁多的配置, ...

  3. 关于mysql-connector-net和C#.net

    mysql-connector-net-8.0.11.msi 可以从这里下载:mysql-connector-net-8.0.11   如果使用ado.net链接mysql数据库则只需要引用  MyS ...

  4. C#把动态创建的多个控件中指定控件显示在最上层

    在创建多个控件后,有些控件会发生重叠,那么就需要在鼠标按下它时能显示在最上层,下面通过先将按下操作的控件删除然后再重建,就达到让它显示在最上层了 //控件按下 private void picture ...

  5. mock测试

    看到群里有人说mock测试,究竟什么是mock测试呢?开始自己也没明白,查了下相关资料.还是很有必要了解哈:那么mock测试能解决什么问题?mock测试要如何做呢?今天为大家做简单介绍.mock测试就 ...

  6. TJU ACM-ICPC Online Judge—1191 The Worm Turns

    B - The Worm Turns Time Limit:2000MS     Memory Limit:65536KB     64bit IO Format:%lld & %llu Su ...

  7. 第一个Web应用

    这篇文章演示如何使用ASP.NET Core创建第一个web api服务. 开始 新建一个Project. 选择模板'ASP.NET Core Web应用程序',并且输入解决方案名称和项目名称. 然后 ...

  8. 面试题之(vue生命周期)

    在面试的时候,vue生命周期被考察的很频繁. 什么是vue生命周期呢? Vue实例有一个完整的生命周期,也就是从开始创建.初始化数据.编译模板.挂载Dom.渲染→更新→渲染.卸载等一系列过程,我们称这 ...

  9. 程序员50题(JS版本)(二)

    程序6:用*号输出字母C的图案 console.log(' ****'); console.log(' ***'); console.log(' **'); console.log(' *'); co ...

  10. Building QGIS from source - step by step(随笔2)

    QT安装 在Windows上安装QGIS,首先需要安装VS,VS的版本根据需要的版本下载,注意QGIS版本与VS版本对应.另外QT下载安装也需要与VS版本的安装对应.本机系统装的VS10,对应QT版本 ...