UICollectionView 简单使用

显示数据列表 大家通常使用的是UITableView
 不用说TableView 是大家的首选。在iOS6之前这也是必选。但是伴随着APP的成长一起都在变化目前更多的呈现一种块状的显示效果、之前的行式显示效果大家都已见的太多了。接下来大家和我一起来看看另外的一种控件 - UICollectionView

1、实例化
2、自动布局
3、横向
4、纵向
5、协议
6、Cell

一、实例化
   UICollectionView 的实例化和其它控件存在一个不同的地方。
   init
   initWithFrame:
   initWithFrame: collectionViewLayout:
   前面的两个实例化方法是从父类继承来的,在实际使用中不使用如果使用程序会报错。
   通常使用第三个方法这是因为在实例化UICollectionView 是需要指定一个布局,UICollectionView 呈现时是根据这个布局对象来显示。
二、自动布局
    AutoLayout 这个很简单将 UICollectionView 实例的 translatesAutoresizingMaskIntoConstraints 属性设置为NO 然后添加相应的约束。
    
三、布局(UICollectionViewFlowLayout) 这里将横向和纵向布局放在一起
   UICollectionView 显示布局非常灵活凡是UITableView 能够显示的它都能显示。
   由于CollectionView 是块状布局决定了它能够实现横纵布局, 这两种布局苹果官方已经封装好。同时还有更多的布局方式可以通过继承 UICollectionViewFlowLayout 自定义。
   横向布局和纵向布局主要是通过布局实例对象的属性scrollDirection 来控制,    UICollectionViewScrollDirectionVertical/UICollectionViewScrollDirectionHorizontal 分别代表纵向布局和横向布局默认是纵向布局。

当然在横向布局的时候需要注意的是UICollectionView 的高度。如果高度设置不合理就不能显示出横向滚动的效果。
   布局实例可以在实例化的时候就设置好相应的显示效果也可以通过 UICollectionViewDelegateFlowLayout 协议灵活实现。
   
四、协议(UICollectionViewDataSource,UICollectionViewDelegate)
   主要是数据源和动作协议
   数据源协议主要控制数据的显示
   动作协议主要是捕捉用户的相关操作和动画。
   这里需要注意一个小问题:数据能够正常显示但UICollectionView 没有滑动效果。这时将 UICollectionView 实例的 alwaysBounceHorizontal 属性值设置成YES 如果是纵向滚动就是 alwaysBounceVertical。
   
五、Cell
   使用UICollectionView 显示数据必须使用registerClass或者registerNib 注册对应的Cell 目的是便于重用同时避免了每次显示都要重新实例化,在UICollectionView 中默认必须注册Cell。

对于UITableView则可以不必注册,建议大家在使用UITableView 时最好是先注册Cell,这样做的好处大家应该能知道吧?

总结:
   UICollectionView 在显示数据上表现的灵活性和美观 都要优于UITableView 但是在有些方面还是相对于UITableView 来说还是有所不足例如:编辑、分组索引 、多选.

时间: 2024-08-08 18:49:58

UICollectionView 简单使用的相关文章

Swift UICollectionView 简单使用

最近要研究下排布的游戏关卡界面的实现,简单做了个UICollectionView的demo. 先看最后的效果: 下面来看实现的方法把,在Storyboard对应的ViewController中增加一个UICollectionView控件,然后再其中加入一个CollectionViewCell 在其中增加一个Label控件 注意,下面对这个Cell进行命名,命名成defaultCell, 这样我们UI层面的工作就结束了. 代码部分: 首先我们需要了解两个类,UICollectionViewData

IOS基金会_ UICollectionView简单易用

和表格视图类似 UICollectionView的使用有两种方法 一种是继承UICollectionViewController,这个Controller会自带一个UICollectionView. 第二种是创建一个UIConllectionView 视图放在普通的UIViewController里面. 我们用另外一种 首先声明先声明一个重用标示  和实现托付 #define _CELL @"acell" @interface yxpViewController ()<UICol

UICollectionView简单介绍

1. UICollectionView 类是iOS6 新引进的API,用于展示集合视图,布局更加灵活,可实现多列布局,用法类似于UITableView类. 2.自定义UICollectionViewCell,与自定义tableViewCell基本一致. UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc]init];//创建布局方式,系统默认线性布局     UICollectionView *colle

iOS UICollectionView简单使用

首先认识一下UICollectionView NS_CLASS_AVAILABLE_IOS(6_0) @interface UICollectionView : UIScrollView UICollectionView 和 UICollectionViewController 类是iOS6 新引进的API,用于展示集合视图,布局更加灵活,可实现多列布局,用法类似于UITableView 和 UITableViewController 类. 使用UICollectionView 必须实现UICo

ios UICollectionView简单说明

原谅我记不住写下来好了 UICollectionViewFlowLayout 流式自动布局 继承于UICollectionViewLayout 初始化:[[UICollectionViewFlowLayout alloc]init] 属性说明: minimumLineSpacing:cell上下间距 minimumInteritemSpacing:左右间距 itemSize:cell的size scrollDirection:方向 sectionInset:模块的边距 headerReferen

ios学习记录 day42 UI18 集合视图

集合视图UICollectionView 简单来说就是多列的TableView 它们同样是datasource和delegate设计模式UICollectionViewLayout是一个对View布局和行为描述的类  UICollectionViewFlowLayout是它的子类 ios学习记录 day42 UI18 集合视图,码迷,mamicode.com

一些iOS面试基础题总结

目录 多线程 AutoLayout objc_msgSend Runtime 消息转发 Category NSObject 与 objc_class Runloop AutoreleasePool iOS系统架构 App启动过程和优化 UIScrollView 的代理方法 响应链和事件传递 UIView 和 CALayer 的区别和联系 轮播图朴素实现的几种方法 TableView 和 CollectionView 必选的代理方法 UITableView 的优化思路 多线程 线程之间同步 原子操

UICollectionView 很简单的写个瀑布流

你项目中要用到它吗? 可能会在你的项目中用到这玩意,最近也是要用就简单的写了一个 Demo.没多少代码,就不放Git了,下面会详细点的说说代码的,要还有什么问题的小伙伴可以直接Q我,也可以把Demo发给你,这里有Q可以找一下加我 多多交流,互相学习! 下面是简单的一个效果图,先给看看效果图! 先说说控制器里面的代码,控制器里面就是我们的  UICollectionView  的一些基本的创建了.其实它和 UITableView 相比较的话,但从创建使用看的话,是挺相似的,但其实它真的比 UITa

IOS 支付宝-五福简单框架实现-线性滚动(UICollectionView)

猴年支付宝可算是给大家一个很好的惊喜,刺激.大家都在为敬业福而四处奔波.可是到最后也没有几个得到敬业福德,就像我.不知道大家有没有观察,五福界面的滚动是一个很好的设计.在这里,给大家带来简单的滚动实现,首先看一下实现效果. 通过观察不难发现,有很多地方并不是那么容易想出来的,对于篇随笔,感兴趣可以查查相关资料,我就不尽行过多说明,(主要是开考文字,不好说明??). 献出代码,请收下. // // ViewController.m // CX 支付宝-五福简单框架实现-线性滚动(UICollect