iT邦幫忙

2018 iT 邦幫忙鐵人賽
DAY 21
0

昨天用 UICollectionView 做一個圖片顯示,但是間距怎樣看都覺得奇怪,原來是 Cell 的高度設定有問題

        //set up the size of each cell
        layout.itemSize = CGSize(width:CGFloat(fullScreenSize.width)/3 - 10.0, height:CGFloat(fullScreenSize.height)/3 - 110.0)

把 Cell 高度修改一下看起來舒服多了!!

試試看新增 Header 和 Footer
在 < ViewDidLoad > 中

  1. 建立 Header 和Footer
        layout.headerReferenceSize = CGSize(width:fullScreenSize.width, height:40)
        layout.footerReferenceSize = CGSize(width:fullScreenSize.width, height:40)
  1. 註冊 Header 和 Footer
myCollectionView.register(UICollectionReusableView.self, forSupplementaryViewOfKind:UICollectionElementKindSectionHeader, withReuseIdentifier: "Header")
myCollectionView.register(UICollectionReusableView.self, forSupplementaryViewOfKind:UICollectionElementKindSectionFooter, withReuseIdentifier: "Footer") 
  1. Header 和 Footer 內容
 //contents of Header and Footer
    func collectionView(_ collectionView: UICollectionView,viewForSupplementaryElementOfKind kind: String,
        at indexPath: IndexPath) -> UICollectionReusableView {
        
        // 實體化 UICollectionReusableView
        var reusableView = UICollectionReusableView()

        // 在 header 和 footer 建立 label 顯示文字
        let label = UILabel(frame: CGRect(
            x: 0, y: 0, width: fullScreenSize.width, height: 40))
        label.textAlignment = .center

        // header
        if kind == UICollectionElementKindSectionHeader {
            reusableView = collectionView.dequeueReusableSupplementaryView(ofKind: UICollectionElementKindSectionHeader,
           withReuseIdentifier: "Header", for: indexPath)

            //設置 header 的內容
            reusableView.backgroundColor = UIColor.cyan
			  label.text = "Header";
            label.textColor = UIColor.white

        } else if kind == UICollectionElementKindSectionFooter {
            reusableView = collectionView.dequeueReusableSupplementaryView(ofKind: UICollectionElementKindSectionFooter,withReuseIdentifier: "Footer", for: indexPath)
            // 設置 footer 的內容
            reusableView.backgroundColor = UIColor.darkGray
            label.text = "Footer";
            label.textColor = UIColor.black

        }

        reusableView.addSubview(label)
        return reusableView
    }


上一篇
UICollectionView ( D Day + 19)
下一篇
# UIScrollView (一) ( D Day + 21 )
系列文
挑戰 30天內送審一支APP 30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言