引入协议
class CollectionviewController: UIViewController,UICollectionViewDelegate,UICollectionViewDataSource,UICollectionViewDelegateFlowLayout
实现协议方法
var _collectionView:UICollectionView?
override func viewDidLoad() {
super.viewDidLoad()
self.createrUI()
}
func createrUI() -> Void {
//设置内边距
let insets:UIEdgeInsets = UIEdgeInsets(top: 10, left: 5, bottom: 10, right: 5)
//设置item大小
let Itemsize:CGSize = CGSize(width:180,height:250)
//初始化UICollectionViewFlowLayout
let layout:collectionLayout = collectionLayout().initcollectionlayout(itemSize: Itemsize, minlineSP: 5, mininterSP: 5, _sectionInset:insets)
//初始化UICollectionView
self._collectionView = UICollectionView.init(frame: self.view.bounds, collectionViewLayout: layout )
self._collectionView?.delegate = self;
self._collectionView?.dataSource = self;
//注册cell或者叫item
self._collectionView?.register(CollectionViewCell.self, forCellWithReuseIdentifier:"collection")
self.view.addSubview(self._collectionView!)
}
//组数
func numberOfSections(in collectionView: UICollectionView) -> Int {
return 1;
}
//每组个数
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return 10;
}
//注册cell或者叫item
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell: CollectionViewCell = CollectionViewCell.initItemWithIdentifier(_collectionview: collectionView,Identifier: "collection",index: indexPath)
return cell;
}
设置UICollectionViewFlowLayout
func initcollectionlayout(itemSize:CGSize,minlineSP:CGFloat, mininterSP:CGFloat,_sectionInset:UIEdgeInsets) -> collectionLayout {
if (self.superclass != nil) {
//item大小
self.itemSize = itemSize
//组间距最小值
self.minimumLineSpacing = minlineSP
//相邻两个item间距离最小值
self.minimumInteritemSpacing = mininterSP
//item内边距
self.sectionInset = _sectionInset
//排列方式或者说滚动方式
self.scrollDirection = UICollectionView.ScrollDirection.vertical
}
return self
}
cell(item)的自定义
class CollectionViewCell: UICollectionViewCell {
class func initItemWithIdentifier(_collectionview:UICollectionView,Identifier:String , index:IndexPath) -> CollectionViewCell {
//复用
let cell:CollectionViewCell = _collectionview.dequeueReusableCell(withReuseIdentifier: Identifier, for: index) as! CollectionViewCell
//设置背景颜色
cell.backgroundColor = UIColor.orange
return cell
}
}
网友评论