闲来无事,准备从基础制作Mac OS 开发教程,看看能坚持到哪一天....
> 今天刚好在做NSCollectionView的异常 那就做NSCollectionView的教程吧
首先得了解你为什么要用CollectionView: 一个View下加载多个相同子view,不用自己排版,可以自动布局,这就是collectionView的优势.OK. 让我们开始吧...
一. 新建一个Demo Project.
![](https://img.haomeiwen.com/i14841505/7048eb6beae9ad00.png)
![](https://img.haomeiwen.com/i14841505/06c3e47d8bc8b482.png)
创建好后,选择mainstory.的view,将collectionView添加到UI上,并且添加约束
![](https://img.haomeiwen.com/i14841505/ca05a0d79c1a29cf.png)
添加约束:选中collection view->Editor->Resolve Auto Layout Issues->Add Missing Constraints
![](https://img.haomeiwen.com/i14841505/217706cb4a5f015c.png)
![](https://img.haomeiwen.com/i14841505/0659e037dda5515c.png)
2. 添加CollectionViewItem 继承自NSCollectionViewItem,勾选create xib
![](https://img.haomeiwen.com/i14841505/e983d162fd7e6dae.png)
![](https://img.haomeiwen.com/i14841505/457d2c3fc4b8f521.png)
![](https://img.haomeiwen.com/i14841505/6820f856a60e6256.png)
在collectionViewItem中加入一个Label 和一个 Button
![](https://img.haomeiwen.com/i14841505/0dc481db749a5c05.png)
绑定 Label的值=item.info,Button的click行为改变info内容.
![](https://img.haomeiwen.com/i14841505/47a80aede58fd4f8.png)
![](https://img.haomeiwen.com/i14841505/f6bd81e51dad69f1.png)
重新回到Main.storyboard 中 ,将collectionView 设置item尺寸和我们上面设置的尺寸一样.
![](https://img.haomeiwen.com/i14841505/467515b805ece6ed.png)
设置CollectionView 的datasource & delegate 为View Controller
![](https://img.haomeiwen.com/i14841505/0444f3c3156977b3.png)
将collection View 与button 绑定到viewController上,viewController遵守NSCollectionViewDataSource & NSCollectionViewDelegate
![](https://img.haomeiwen.com/i14841505/761da595cdb2a53c.png)
ViewController 中添加数组属性 dataSource 用于存放 CollectionViewItem对象,以便按钮添加
![](https://img.haomeiwen.com/i14841505/54f054cf5f236ed0.png)
实现2个重要的代理方法,以及按钮动作
![](https://img.haomeiwen.com/i14841505/011adcf5add3aa7a.png)
完成以上基础动作后,collection View 就可以执行了. Let me Run.
![](https://img.haomeiwen.com/i14841505/9d43cd87358af3aa.png)
不过背景色真丑,在item 的viewdidload中改一下背景色
![](https://img.haomeiwen.com/i14841505/9890564ab43deb00.png)
再Run--->>
![](https://img.haomeiwen.com/i14841505/a43e51ca0290e2c5.png)
原谅我的审美,大概就是这样了... 希望大家Get了.
Demo链接:NSCollectionViewDemo
网友评论