UICollectionViewのヘッダとフッタの設定
公開日:
:
Tips InterfaceBuilder, UICollectionView, Xcode
UICollectionViewで慣れないのがヘッダフッタで、毎度「どうやって設定するんだっけ…」と悩むので、備忘録を兼ねて記事を書いておこうと思います。
UITableViewと違う
NumberOf〜系統のメソッドが大体同じ感じなのでheader〜とかfooter〜とかいうメソッドがあるのかと思うと不意打ち食らうというか、これらはSupplementaryElement(サプリメント:補助的)として扱われています。
なので、[collectionView:viewForSupplementaryElementOfKind:atIndexPath:]というメソッドで対応するビューを引っ張ります。
クラスはUICollectionReuseableViewというクラスで、IBで作る場合は専用のタイトルセル(UICollectionViewCellの隣にある、Collectionの横長の棒がハイライトされているアイコン)をIBに入れて作ることができます。
IB使って実際にやるなら、派生クラスを作ってIBOutletをゴリゴリ割り当てておくと、メソッド内のデータの設定が楽になるかと思います。
- (UICollectionReusableView*)collectionView:(UICollectionView *)collectionView viewForSupplementaryElementOfKind:(NSString *)kind atIndexPath:(NSIndexPath *)indexPath { // セクションヘッダ・フッタを引っ張ってくる UICollectionReusableView* reusableview = nil; if (kind == UICollectionElementKindSectionHeader) { // --- ヘッダ UICollectionReusableView* headerView = [collectionView dequeueReusableSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:@"HeaderView" forIndexPath:indexPath]; //(ここにheaderViewの中身の定義をindexPath.sectionなんかをベースに設定してやる) reusableview = headerView; } else if (kind == UICollectionElementKindSectionFooter) { // --- フッタ UICollectionReusableView* footerView = [collectionView dequeueReusableSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:@"FooterView" forIndexPath:indexPath]; //(ここにfooterViewの中身の定義をindexPath.sectionなんかをベースに設定してやる) reusableview = footerView; } return reusableview; }
参考サイト
関連記事
-
UISplitViewControllerの仕切り線の色を設定
UISplitViewControllerで、iPadを横向き(Landscape)にしたときの2つ
-
CoreDataのソートとsectionNameKeyPathの関係
CoreDataをフェッチするときに、indexPathのsectionにできるsectionNam
-
メソッドの呼び出し元を調べる
特定のメソッドに関して、そのメソッドをコールしているメソッド群を調べるための手順。 (1)調べたい
-
NSDictionary/NSMutableDictionaryの”valueForKey:”と”objectForKey:”の違い
表題にある通り、似ていて混同する(そして、取り違えても「たいてい」普通に動作する)NSDiction
-
Bitbucket課題の記法サンプル
Bitbucketの課題、およびwikiで利用できる記法についての記事です。 利用できる記法に
-
UIAutomation関連覚書
割りと忘れがちなので、自分用備忘録を兼ねて、UIAutomationに関連するtips的なものをまと
-
App Storeのページにアプリケーションから直接アクセスする方法
去年(2013年)の秋ごろ、iOS7の出始めの時期に書かれたblog記事などを参考にすると、iOS6
-
iOS9でURLスキームを登録する
私事ですが、iOS8から対応はしたいということで検証用に使っている自分のiPhoneもiOS8でがん
-
iPadのUIModalPresentationFormSheetでキーボードが閉じない
iPadでUIModalPresentationFormSheet(全画面ではなく、中央にフロートし
-
NSStringのフォーマット書式
Appleのページになく、IEEEのprintfフォーマットのページにあるので、C言語と親しくしてな