• swift


    具体代码如下:

    1、声明

     var hCollectionView:UICollectionView?
        var layout:UICollectionViewFlowLayout?
        
        
        let courser = [
            ["name":"jack chen","pic":"1.jpeg"],
            ["name":"jack chen","pic":"1.jpeg"],
            ["name":"jack chen","pic":"1.jpeg"],
            ["name":"jack chen","pic":"1.jpeg"],
            ["name":"jack chen","pic":"1.jpeg"]
        ]

    2、创建流布局,并初始化cellevtionView

    //        设置布局流格式
        layout = UICollectionViewFlowLayout()
        layout?.itemSize = CGSize(self.view.frame.width/2-1,height:100)
    //        列间距,行间距,偏移
        layout?.minimumInteritemSpacing = 1 //列间距
        layout?.minimumLineSpacing = 1 //行间距
    //        layout?.sectionInset = UIEdgeInsets(top:5,left:0,bottom:0,right:0)
        
        self.hCollectionView = UICollectionView.init(frame: CGRect(x:0,y:0,kScreenWidth,height:kScreenHeight), collectionViewLayout: layout!)
        self.hCollectionView?.delegate = self
        self.hCollectionView?.dataSource = self
        self.hCollectionView?.register(UINib.init(nibName: "hCell", bundle: nil), forCellWithReuseIdentifier: "hCell")
        self.hCollectionView?.backgroundColor = UIColor.orange
        //collectionview的偏移量
    //        self.hCollectionView?.contentInset = UIEdgeInsets(top:5,left:0,bottom:5,right:0)
        
        self.view.addSubview(self.hCollectionView!)

    3、代理方法的实现

    //    行数
        func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
                return courser.count
        }
        
    //    获取单元格
        func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
            let cell:hCell = self.hCollectionView?.dequeueReusableCell(withReuseIdentifier: "hCell", for: indexPath) as! hCell
            //这里判断了下奇偶数
            if indexPath.item%2 == 0 {
                cell.backgroundColor = UIColor.red
                cell.bgImg.image = UIImage(named:self.courser[indexPath.item]["pic"]!)
                cell.descLab.text = self.courser[indexPath.item]["name"]
                
            }else{
                cell.backgroundColor = UIColor.yellow
                cell.bgImg.image = UIImage(named:self.courser[indexPath.item]["pic"]!)
                cell.descLab.text = self.courser[indexPath.item]["name"]
            }

    最终效果图:

    上面这种的话,是标准的流布局,设定好item的尺寸,会随着屏幕向下平铺,但是还有一种自定义的流布局,例如一些门户类app的首页,左边有一个大的Item,右边是2个小的item,两个小的总高度和一个大的Item的高度是一致的!其实就是几个方法,东西不难,敲几遍都差不多了,这里仅做记录!

    实现自定义流布局的话,主要是实现这3个方法:

    // 内容区域总大小,不是可见区域
        override var collectionViewContentSize: CGSize
    // 所有单元格位置属性
        override func layoutAttributesForElements(in rect: CGRect)
            -> [UICollectionViewLayoutAttributes]?
    // 这个方法返回每个单元格的位置和大小
        override func layoutAttributesForItem(at indexPath: IndexPath)
            -> UICollectionViewLayoutAttributes?
  • 相关阅读:
    洛谷 P1363 幻想迷宫
    洛谷 P2872 [USACO07DEC]道路建设Building Roads
    字符编码
    python 基础数据类型
    python基础数据类型
    Python中的流程控制
    Python的入门基础
    计算机基础
    Java Random 随机数
    Java Array二维数组使用
  • 原文地址:https://www.cnblogs.com/hero11223/p/5772808.html
Copyright © 2020-2023  润新知