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发 ...
随机推荐
- 测试mysql的sql语句预编译效果
玩Oracle的都比较关注shared pool,特别是library cache,在使用了绑定变量(预编译sql)之后确实能得到很大的性能提升.现在在转Mysql之后特别是innodb很多东西都还能 ...
- Support for AMD usage of jwplayer (require js)
使用require js 模块化代码时,其中播放器用的是jwplayer7.x 然后载入jwplayer.js后总是报license无效(license已经加入),最后在jwplayer官网论坛里找到 ...
- Spring自定义一个拦截器类SomeInterceptor,实现HandlerInterceptor接口及其方法的实例
利用Spring的拦截器可以在处理器Controller方法执行前和后增加逻辑代码,了解拦截器中preHandle.postHandle和afterCompletion方法执行时机. 自定义一个拦截器 ...
- 「ubuntu」通过无线网络安装Ubuntu Server,启动系统后如何连接无线网络
接触Ubuntu系统不久,发现无线网络环境下安装Ubuntu Server一个不太人性化的设计:在安装过程中选择无线网卡,即使用无线网络安装(此时需要选择Wi-Fi网络并输入密码),但系统安装完成重启 ...
- td内元素居顶,td元素不随高度的撑开而变位置
如下图,右边内容变高了,左边元素位置就下降到居中 设置居顶不变的方法 <table width="200" border="1"> <tr&g ...
- 集成TFS Build生成与SonarQube获取代码分析结果
软件项目在开发过程中,往往由于任务重.时间紧等原因忽略软件代码的质量和规范检查,只注重软件功能的开发和交付.等软件交付上线以后,由于代码质量导致的问题会耗费开发和运维人员的大量时间.研发表明,项目上线 ...
- uva 839 not so mobile——yhx
Not so Mobile Before being an ubiquous communications gadget, a mobile was just a structure made of ...
- hdu-5920 Ugly Problem(贪心+高精度)
题目链接: Ugly Problem Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Other ...
- C++学习之开发环境搭建篇(一)
由于C++是一门非跨平台语言,其开发的程序编译生成的可执行文件,只能在相应的操作系统中被执行,离开此系统环境将无法执行. 主要原因是不同的操作系统,可执行文件的结构不同,最为常见的操作系统是有:MAC ...
- iOS开发如何提高(from 唐巧的博客)
http://blog.devtang.com/blog/2014/07/27/ios-levelup-tips/