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 来说还是有所不足例如:编辑、分组索引 、多选.
UICollectionView 简单使用的更多相关文章
- Swift UICollectionView 简单使用
最近要研究下排布的游戏关卡界面的实现,简单做了个UICollectionView的demo. 先看最后的效果: 下面来看实现的方法把,在Storyboard对应的ViewController中增加一个 ...
- IOS基金会_ UICollectionView简单易用
和表格视图类似 UICollectionView的使用有两种方法 一种是继承UICollectionViewController,这个Controller会自带一个UICollectionView. ...
- UICollectionView 简单应用和实际操作
1.网格视图 UICollectionView 网格布局 UICollectionViewFlowLayout系统图自带网格布局 系统自带的网格布局 UICollectionViewFl ...
- iOS UICollectionView简单使用
UICollectionView 和 UICollectionViewController 类是iOS6 新引进的API,用于展示集合视图,布局更加灵活,可实现多列布局,用法类似于UITableVie ...
- UICollectionView 简单的使用和注意事项
UICollectionView 在创建的时候,要给它一个UICollectionViewFlowLayout (不然会崩溃),就像tableview一样,也要为它注册自定义的cell. UIColl ...
- ios UICollectionView简单说明
原谅我记不住写下来好了 UICollectionViewFlowLayout 流式自动布局 继承于UICollectionViewLayout 初始化:[[UICollectionViewFlowLa ...
- Swift3.0 UICollectionView简单使用
感觉swift各版本语法改动太大,储备着吧
- 一些iOS面试基础题总结
一些iOS面试基础题总结 目录 多线程 AutoLayout objc_msgSend Runtime 消息转发 Category NSObject 与 objc_class Runloop Auto ...
- UICollectionView 很简单的写个瀑布流
你项目中要用到它吗? 可能会在你的项目中用到这玩意,最近也是要用就简单的写了一个 Demo.没多少代码,就不放Git了,下面会详细点的说说代码的,要还有什么问题的小伙伴可以直接Q我,也可以把Demo发 ...
随机推荐
- [原]openstack-kilo--issue(五) neutron-agent服务实际是active的-但是显示为XXX
问题出现: 重启后出现了这样的情况: 查看详细的参数 查看数据库neutron 中对应的agents表.发现表中没有alive这个字段 这些服务的实际状态为active: ----1------● n ...
- 第一篇:微信公众平台开发实战Java版之了解微信公众平台基础知识以及资料准备
相信很多人或多或少听说了微信公众平台的火热.但是开发还是有一点门槛,鉴于挺多朋友问我怎么开发,问多了,自己平时也进行以下总结.所以下面给大家分享一下我的经验: 微信公众号是什么? 官网的介绍:再小的个 ...
- Java基础の乱弹琴一:assert关键字
一.概述 assert:表示断言 二.语法 在Java中,assert关键字是从JAVA SE 1.4 引入的,为了避免和老版本的Java代码中使用了assert关键字导致错误,Java在执行的时候默 ...
- Listview的点击事件
上篇文章总结了如何自定义listview的显示内容,然而listview不能只是提供显示功能,还必须能够点击它显示一些东西: listView.setOnItemClickListener(new O ...
- codeforces 711C C. Coloring Trees(dp)
题目链接: C. Coloring Trees time limit per test 2 seconds memory limit per test 256 megabytes input stan ...
- HDU 1565 最大点权独立集
首先要明白图论的几个定义: 点覆盖.最小点覆盖: 点覆盖集即一个点集,使得所有边至少有一个端点在集合里.或者说是“点” 覆盖了所有“边”.. 最小点覆盖(minimum vertex covering ...
- Java Executor并发框架(一)整体介绍
一.概述 Java是天生就支持并发的语言,支持并发意味着多线程,线程的频繁创建在高并发及大数据量是非常消耗资源的,因为java提供了线程池.在jdk1.5以前的版本中,线程池的使用是及其简陋的,但是在 ...
- java 20 - 8 字节流的文件复制以及汉字在计算机中的存储方式
复制文本文件:把当前目录下的FileIntputStream.java文件里面的内容复制到当前目录的b.txt文件中 分析: 数据源: FileIntputStream.java -- 读取数据 -- ...
- finder怎么才能找到library
右键Finder——前往目录 输入~/Library
- Android Handler处理机制 ( 二 ) ——Handler,Message,Looper,MessageQueue
Android是消息驱动的,实现消息驱动有几个要素: 消息的表示:Message 消息队列:MessageQueue 消息循环,用于循环取出消息进行处理:Looper 消息处理,消息循环从消息队列中取 ...