swift

不用xib创建时,需要重写

override init(collectionViewLayout layout: UICollectionViewLayout){}

在调用时需传 UICollectionViewLayout值,不然就会报错

1 let layout = UICollectionViewFlowLayout.init() 2 3 let vc1 = DataCollectionViewController.init(collectionViewLayout: layout)

接下来就是cell的注册以及调用了

1self.collectionView!.register(DataCollectionViewCell.self, forCellWithReuseIdentifier: reuseIdentifier) 2 3 override func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { 4 // #warning Incomplete implementation, return the number of items 5 return self.leagueNameArr.count 6 } 7 override func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { 8 let cell = collectionView.dequeueReusableCell(withReuseIdentifier: reuseIdentifier, for: indexPath) as! DataCollectionViewCell 9 cell.titleLabel.text = self.leagueNameArr[indexPath.item] 10 11 return cell 12 }

如果需要设置item的大小以及距离上左下右的距离就得加上UICollectionViewDelegateFlowLayout协议,并遵循一下方法

1 func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize { 2 return CGSize.init(width: 60, height: 30) 3 } 4 5 func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAt section: Int) -> UIEdgeInsets { 6 return UIEdgeInsets.init(top: 5, left: 10, bottom: 5, right: 10) 7 } 8

此时,"run"会发现view的背景色是黑色的.我们需要在override init(collectionViewLayout layout: UICollectionViewLayout) {}方法中加上设置背景色

        self.collectionView?.backgroundColor = UIColor.init(red: 237/255, green: 237/255, blue: 237/255, alpha: 1)

下面是collectionViewHeaderView的 基本用法

1.cell注册

        self.collectionView.register(QQGFindHeadCollectionViewCell.self, forSupplementaryViewOfKind: UICollectionElementKindSectionHeader, withReuseIdentifier: "QQGFindHeadCollectionViewCell")

2.设置高度(两种方法都可以)

1 let layout = UICollectionViewFlowLayout() 2 layout.headerReferenceSize = CGSize.init(width: WIDTH, height: 300) 3 4 //MARK: - 设置collectView 的每行头部视图高度 5 func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, referenceSizeForHeaderInSection section: Int) -> CGSize { 6 if self.infoArray.count > 0{ 7 return CGSize(width: WIDTH, height: 110) 8 } 9 return CGSize(width: WIDTH, height: 0.001) 10 11 } 12

3.设置内容

1 //MARK: - 设置collectView的 headerCell内容 2 func collectionView(_ collectionView: UICollectionView, viewForSupplementaryElementOfKind kind: String, at indexPath: IndexPath) -> UICollectionReusableView { 3 if self.infoArray.count > 0{ 4 let cell = collectionView.dequeueReusableSupplementaryView(ofKind: UICollectionElementKindSectionHeader, withReuseIdentifier: "QQGFindHeadCollectionViewCell", for: indexPath) as! QQGFindHeadCollectionViewCell 5 6 7 cell.imageArr = ["https://qqsdg.oss-cn-shenzhen.aliyuncs.com/Userimage_test/19B64825-5410-4D49-92F5-7487ECA750453366901166.jpg","https://qqsdg.oss-cn-shenzhen.aliyuncs.com/Userimage_test/19B64825-5410-4D49-92F5-7487ECA750453366901166.jpg","https://qqsdg.oss-cn-shenzhen.aliyuncs.com/Userimage_test/19B64825-5410-4D49-92F5-7487ECA750453366901166.jpg"] 8 9 return cell 10 }else{ 11 let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "QQGFindHeadCollectionViewCell", for: indexPath) as! QQGFindHeadCollectionViewCell 12 13 return cell 14 } 15 16 }
点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

2020年前端实用代码段,为你的工作保驾护航

有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )