文档章节

Swift-系统默认UICollectionViewController的基本用法

west_zll
 west_zll
发布于 2018/10/16 09:53
字数 422
阅读 58
收藏 0

 

不用xib创建时,需要重写

override init(collectionViewLayout layout: UICollectionViewLayout){}

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

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

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

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

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

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

此时,"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.设置高度(两种方法都可以)

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

3.设置内容

    
    //MARK: - 设置collectView的 headerCell内容
    func collectionView(_ collectionView: UICollectionView, viewForSupplementaryElementOfKind kind: String, at indexPath: IndexPath) -> UICollectionReusableView {
        if self.infoArray.count > 0{
            let cell = collectionView.dequeueReusableSupplementaryView(ofKind: UICollectionElementKindSectionHeader, withReuseIdentifier: "QQGFindHeadCollectionViewCell", for: indexPath) as! QQGFindHeadCollectionViewCell
            
            
            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"]
            
            return cell
        }else{
            let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "QQGFindHeadCollectionViewCell", for: indexPath) as! QQGFindHeadCollectionViewCell

            return cell
        }
       
    }

 

© 著作权归作者所有

共有 人打赏支持
west_zll
粉丝 1
博文 67
码字总数 11647
作品 0
深圳
iOS工程师
私信 提问
Swift4.0基础知识回顾

简单介绍一下Swift Swift 语言由苹果公司在 2014 年推出,用来撰写 OS X 和 iOS 应用程序,Swift语言让应用开发更简单、更快、更稳定,确保最终应用有着更好的质量更多了解Swift可以去《The...

博行天下
2017/12/06
0
0
从Java到Swift

我们学习的新事物时,通常并不是从0开始,而是从已知开始,将新事物与已知的进行比较分析,从而快速全面地了解新事物。 而我熟悉Java,所以在学习Swift时,就会将Swift与Java进行比较,思考。...

阿里百川
2016/03/14
279
0
iOS6 新特性集合 UICollectionView

UICollectionView 和 UICollectionViewController 类是iOS6 新引进的API,用于展示集合视图,布局更加灵活,可实现多列布局,用法类似于UITableView 和 UITableViewController 类。 使用UIC...

广州英趣科技
2013/06/21
0
9
【iOS】Swift中的函数、断言、枚举等

函数与方法、枚举等的书写格式与用法较OC还是变化很大的。 一、函数 1.1 无返回值, 无形参 func myTest2(){ } 1.2 有返回值,有形参 func myTest1( num1:Int , num2:Int ) -> String{ } 1.3...

xn4545945
2014/09/15
0
0
从 OC 到 Swift 的快速入门与专业实践

只会介绍与 OC 有明显区别的地方,不会介绍 OC 中没有的,比如元组。当前总结也只是蜻蜓点水而已,但是有 OC 的基础,看这些已经足够。 一、数据 Swift 是类型安全的语言: Swift 必须明确数...

CoderHG
2018/08/04
0
0

没有更多内容

加载失败,请刷新页面

加载更多

day27:expect批量杀进程|

1、linux下当前目录有一个文件ip-pwd.ini,内容如下: [root@localhost_002 shell100]# cat ip-pwd.ini 10.111.11.1,root,xyxyxy10.111.11.2,root,xzxzxz10.111.11.3,root,12345610.......

芬野de博客
51分钟前
2
0
分布式之数据库和缓存双写一致性方案解析(二)

引言 该文是对《分布式之数据库和缓存双写一致性方案解析》,一文的补充。博主在该文中,提到了这么一句话 应该没人问我,为什么没有先更新缓存,再更新数据库这种策略。 博主当时觉得,这种...

hensemlee
56分钟前
3
0
druid安装与案例

druid 可以运行在单机环境下,也可以运行在集群环境下。简单起见,我们先从单机环境着手学习。 环境要求 java7 或者更高版本 linux, macOS或者其他unix系统(不支持windows系统) 8G内存 2核C...

hblt-j
今天
0
0
bejson上线 gif转帧工具。

说道这个工具,不得不提一句经典格言“色Q是推动科技发展的动力” 有人发了这个图,我和所有人一样想看到那个瞬间。 当然,我没有PS,有没有太好的转帧工具,但是这并不妨碍我是一个技术死肥...

废柴大叔
今天
0
0
详解利用clear清除浮动的一些问题解决

下面这段代码是用来清除浮动带来的高度塌陷问题 .clearfix:before { content: "."; display: block; height: 0; clear: both; visibility: hidden;} Quest......

前端小攻略
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部