美文网首页
swift (UI)UICollectionView

swift (UI)UICollectionView

作者: cyhai | 来源:发表于2019-08-29 09:19 被阅读0次

引入协议

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
        
    }
    
}

相关文章

网友评论

      本文标题:swift (UI)UICollectionView

      本文链接:https://www.haomeiwen.com/subject/edebectx.html