UICollectionViewにヘッダー、フッターを付ける方法がわからない
↓
わかった。
ViewControllerに、「referenceSizeForHeaderInSection」を引数に取るcollectionViewメソッド(ヘッダーのサイズを返す)を設定すると表示される。
【ヘッダーに関わる部分のコードだけ抜粋】
ViewController.swift
// ヘッダーを表示する
override func collectionView(collectionView: UICollectionView, viewForSupplementaryElementOfKind kind: String, atIndexPath indexPath: NSIndexPath) -> UICollectionReusableView {
var header : MySupplementaryView? = nil
if (kind == UICollectionElementKindSectionHeader) {
header = collectionView.dequeueReusableSupplementaryViewOfKind(kind, withReuseIdentifier: "MyHeader", forIndexPath: indexPath)
as? MySupplementaryView
header?.headerLabel.text = "Car Image Gallery"
}
return header!
}
// ヘッダーのサイズを設定する
func collectionView(collectionView: UICollectionView, layout collectionViewLayout: MyFlowLayout, referenceSizeForHeaderInSection section: Int) -> CGSize {
var size = CGSize(width: 400, height: 50)
return size
}
ソース
こちらにアップしました。
https://github.com/hanoopy/swift-collectionview
その他
- 行列のある表を作ろうと思った時に、UITableViewでもできるのかと思っていたが、できないみたい。Table=行のみ、Collection=行列あり。 名前の印象と違う。
- Storyboardを使わずにUICollectionViewを使う こちらをSwiftでやってみたが、コメントに書かれている通り実行エラーになるし、headerReferenceSizeを設定してもヘッダーは表示されない。