iOS UICollectionView 入门 01 简介

当第一代ipad发布时,相册程序相当吸引眼球,它以独特的方式以多样的布局来显示照片,可以使扁平的表格view:

也可以是有层次的按分类进行查看:

还可以使用手势,以很炫的方式在不同的布局之间进行切换。我们可以使用gridview和一些其它的布局来实现这些,但是太麻烦了,从iOS6开始,我们可以使用UICollectionView来实现它,我们可以很容易的为程序添加自定义布局和自定义转换。

UICollectionViewController解析

我们通过一个示例图,来看看UICollectionViewController是如何构成的:

UICollectionViewController由以下组件组成:

  • UICollectionView:用于显示内容的主view,类似于UITableView。UICollection不需要和其ViewController一样大,如上图所示,在UICollectionView之上有一些空隙用于显示一个用于查找的text field。
  • UICollectionViewCell:类似于UITableView的UITableViewCell。这些Cell作为UICollectionView的内容被添加到其中。Cell可以通过编程方式创建,也可以通过IB来创建。
  • Supplementary Views:如果我们有一些额外的信息想要显示到UICollectionView之中但是这些信息又不属于UICollectionViewCell,我们就需要使用Supplementary view。例如header和footer。
  • Decoration View:如果我们想让UICollectionView看起来更好看,可以使用一些装饰性view,类似于背景图和logo图。
  • UICollectionViewLayout:UICollectionView不知道如何在屏幕上显示cell,UICollectionViewLayout才是干这事的。它使用一系列的代理方法来将一个一个的cell放置到UICollectionView之中。Layout可以动态改变,在改变的过程中,我们可以添加动画效果。
  • UICollectionViewFlowLayout:通过继承UICollectionViewLayout,我们可以创建自定义布局。但是苹果提供了iGetter基本的“flow-based”布局。它以元素的大小将元素以类似grid的方式排列起来。我们可以使用这个布局类来做出一些有趣的视觉效果。

创建Flicker Search示例工程

通过整个教程,我们会创建一个名为Flicker Search的应用程序,这个应用程序以很酷的方式浏览相片,通过搜索栏可以在flicker搜索和下载照片:

创建一个Single view应用程序,选择device为iPad:

将图片加入到Assets中,可以从这里下载:UICollectionView示例程序图片资源

时间: 2024-10-06 01:16:05

iOS UICollectionView 入门 01 简介的相关文章

iOS UICollectionView 入门 03 从Flickr获取数据

Flickr是国外一个照片分享网站,它提供了供开发人员使用的API,通过这些API,我们可以搜索相片,添加相片也可以对相片做评论. 要使用Flickr API,需要通过以下网址进行注册: http://www.flickr.com/services/api/keys/apply/ 对于测试工程,Flickr有一个sample key,使用这个key无需注册. 将以下语句贴到浏览器地址栏,进行任意的搜索: http://www.flickr.com/services/api/explore/?me

iOS UICollectionView 入门 07 点击cell放大图片

这一节,我们实现通过点击图片将图片放大显示的功能. 首先我们创建一个名为FlickrPhotoViewConroller的类,这个类继承于UIViewController.修改头文件内容如下: #import <UIKit/UIKit.h> @class FlickrPhoto; @interface FlickrPhotoViewConroller : UIViewController @property (nonatomic, strong) FlickrPhoto *flickrPhot

iOS开发入门——17条 Swift 最佳实践规范(上)

文章来源:http://www.zretc.com/technologyDetail/432.html 前言 这篇IOS开发入门文章是我根据在 SwiftGraphics 工作时的一系列笔记整理出来的.文中大多数建议是经过深思熟虑的,但仍可以有其他类似的解决方法.因此,如果其他方案是有意义的,这些方案会被添加上去. 这个最佳实践不是强加或者推荐 Swift 在程序.面向对象或者函数风格上的应用.更重要的是,这里要讲述的是务实的方法.如有需要的话,某些建议可能会集中在面向对象或者实用的解决方法.

iOS开发入门教程_iOS开发视频教程

iOS开发入门教程 (Object-C.网络编程.多线程.蓝牙.二维码.Cocos2D.OpenGL)适合人群:初级课时数量:34课时用到技术:IOS,Object-C,OpenGL,XCode,Cocos 2D涉及项目:Cocos+2D.Game Kit蓝牙数据处理等咨询QQ:1840215592 iOS开发入门教程详细查看:http://www.ibeifeng.com/goods-471.html1.1.课程目标iOS开发入门教程内容的目标是初学者入门,让入门者提高,让所有人符合企业招聘的

【IOS】IOS快速入门之OC语法

Objective-C 是 C 语言的超集 您还可以访问标准 C 库例程,例如在 stdlib.h 和 stdio.h 中声明的那些例程. Objective-C 还是一种非常动态的程序设计语言,而且这种动态是其最大优势.这种动态体现在它允许在运行应用程序时(即运行时)才去确定其行为,而不是在生成期间就已固定下来.因此,Objective-C 的动态机制让程序免受约束(编译和链接程序时施加的约束):进而在用户控制下,将大多数符号解析责任转移到运行时. 当您想要在源代码中包括头文件时,请在头文件或

iOS UICollectionView与UITableView

共同点:都需要接受两个协议 并执行代理方法 不同点:初始化方法不同  UITableVIew可以用alloc 方法初始化 而UICollectionView必须用下面方法初始化 // 初始化瀑布流 UICollectionViewFlowLayout *flowLayout = [[UICollectionViewFlowLayout alloc] init]; [flowLayout setItemSize:CGSizeMake(150,120)]; //设置每个cell显示数据的宽和高必须

Node.js 教程 01 - 简介、安装及配置

目录: Node.js 教程 01 - 简介.安装及配置 Node.js 教程 02 - 经典的Hello World Node.js 教程 03 - 创建HTTP服务器 简单的说 Node.js 就是运行在服务端的 JavaScript. Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台. Node.js是一个事件驱动I/O服务端JavaScript环境,基于Google的V8引擎,V8引擎执行Javascript的速度非常快,性能非常好. 谁适合阅读本教程?

iOS.常用设计模式.01.单例模式

使用单例模式的类: UIApplication UIAccelerometer NSUserDefaults NSNotificationCenter NSFileManager NSBundle等 Singleton.h #import <Foundation/Foundation.h> @interface Singleton : NSObject // 始终返回同一个Singleton的指针 + (Singleton *)sharedManager; @property (strong,

iOS之多线程1-NSThread简介

关于多线程在iOS中的重要性,就不废话了.就一个字:重要 ! ^_^ iOS中常用的三种多线程方式:NSThread , GCD, NSOpertaion 虽然NSThrea排在第一位(几乎所有的介绍多线程的书籍都是这么排序),但用的最少,原因:没有后面的两个小弟用起来体贴. 作为多线程的大哥,NSThread几乎已经躲到幕后了. NSThread是从Mac OS 系统引入到iOS中的,在Mac OS 10.5之前,NSThread的启用方法只有一个: detachNewThreadSelect