首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

Swift纯代码 UICollectionView 分组显示、Cell圆角、选中变色

Swift纯代码 UICollectionView 分组显示、Cell圆角、选中变色

1.设置Header布局SHomeHeader,继承自UICollectionReusableView。

    //
    //  SHomeHeader.swift
    //
    //  Created by wangjie on 16/5/4.
    //  Copyright © 2016年 wangjie. All rights reserved.
    //
     
    import UIKit
     
    class SHomeHeader: UICollectionReusableView {
        var titleLabel:UILabel?//title
     
        override init(frame: CGRect) {
            super.init(frame: frame)
            initView()
        }
        func initView(){
            titleLabel = UILabel(frame: CGRectMake(0, 0, SCREEN_WIDTH, 30))
            titleLabel?.backgroundColor = HEADER_BG_COLOR
            self .addSubview(titleLabel!)
        }
        required init?(coder aDecoder: NSCoder) {
            fatalError("init(coder has not been implemented")
        }
     
    }
     

2.为UICollectionReusableView注册header。

    //注册header
    collectionView!.registerClass(SHomeHeader.classForCoder(), forSupplementaryViewOfKind: UICollectionElementKindSectionHeader, withReuseIdentifier: headerIdentifier)
            

3.自定义Header并设置宽高。

    //设置HeadView的宽高
        func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, referenceSizeForHeaderInSection section: Int) -> CGSize{
            return CGSize(width: SCREEN_WIDTH, height: headerHeight)
        }
        
        //返回自定义HeadView
        func collectionView(collectionView: UICollectionView, viewForSupplementaryElementOfKind kind: String, atIndexPath indexPath: NSIndexPath) -> UICollectionReusableView{
            var v = SHomeHeader()
            if kind == UICollectionElementKindSectionHeader{
                v = collectionView.dequeueReusableSupplementaryViewOfKind(kind, withReuseIdentifier: headerIdentifier, forIndexPath: indexPath) as! SHomeHeader
                let title:String = headerArr[indexPath.section] as! String
                v.titleLabel?.text = title
            }
            return v
        }
返回列表