普通的 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. ASP.NET MVC Session 过期验证跳转至登入页面

    一.在要检查登入的控制器上继承 CheckLoginController 类 2. CheckLoginController 类的写法 using System; using System.Colle ...

  2. 17、字符串转换整数 (atoi)

    17.字符串转换整数 (atoi) 请你来实现一个 atoi 函数,使其能将字符串转换成整数. 首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止. 当我们寻找到的第一个非 ...

  3. 【Spring】6、注解大全

    一.@interface Java用  @interface Annotation{ } 定义一个注解 @Annotation,一个注解是一个类. 二.@Override,@Deprecated,@S ...

  4. 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 ...

  5. JS、CSS中的相对路径

    css中url(../images/1.jpg)路径是相对于index.css的 js中url(images/1.jpg)路径是相对于index.html的,并不是相对于index.js

  6. Dynamics 365执行操作报SQL Server已超时,更改这个超时设置的方法

    本人微信公众号:微软动态CRM专家罗勇 ,回复291或者20190110可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me!我的网站是 www.luoyong.me . 当执 ...

  7. Dynamics 365 Online-Microsoft Flow

    自December 2016 update for Dynamics 365 (online)之后的Online版本,Dynamics 365有了个新Feature:Microsoft Flow Co ...

  8. 南京邮电大学java程序设计作业在线编程第八次作业

    程序设计类课程作业平台 王利国 主页 教学资源 我的作业列表 程序设计课 账户 王利国的"Java语言程序设计第8次作业(2018)"详细 主页 我的作业列表 作业结果详细 总分: ...

  9. webpack安装、基本配置

    文章结构: 什么是webpack? 安装webpack webpack基本配置 一.什么是webpack? 在学习react时发现大部分文章都是react和webpack结合使用的,所以在学react ...

  10. 前后端分离djangorestframework—— 接入第三方的验证码平台

    关于验证码部分,在我这篇文章里说的挺详细的了:Python高级应用(3)—— 为你的项目添加验证码 这里还是再给一个前后端分离的实例,因为极验官网给的是用session作为验证的,而我们做前后端分离的 ...