[解決済み] UICollectionReusableView メソッドが呼び出されない
2023-03-30 19:42:56
質問
セクションを
UICollectionView
に、画像付きのヘッダを持たせたい。
私は以下の手順で行いました。
-
のアクセサリーとしてヘッダーを割り当てました。
UICollectionView
- に識別子を付けました。
-
のサブクラスを作成しました。
UICollectionReusableView
を作成しました。 - は、ストーリーボードでカスタムクラスを割り当てました。
-
を置く。
ImageView
をヘッダアクセサリに -
のアウトレットを作りました。
ImageView
のカスタムクラスで.h
ファイル -
で以下を実装。
viewDidLoad
:
[self.collectionView registerClass:[ScheduleHeaderView class] forSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:headerIdentifier];
-(UICollectionReusableView *)collectionView:(UICollectionView *)collectionView viewForSupplementaryElementOfKind:(NSString *)kind atIndexPath:(NSIndexPath *)indexPath
{
UICollectionReusableView *reusableview = nil;
if (kind == UICollectionElementKindSectionHeader)
{
ScheduleHeaderView *headerView = [collectionView dequeueReusableSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:headerIdentifier forIndexPath:indexPath];
headerView.headerImageView.image = [UIImage imageNamed:@"blah.png"];
reusableview = headerView;
}
return reusableview;
}
すべてのセルとそのセクションを見ることができるので、データソースとデリゲートメソッドが動作していることは分かっています。しかし、私はヘッダーを持っていません。私は上記のメソッドにブレークポイントを入れましたが、それは決して呼び出されていません。
私は何を間違えているのでしょうか?
どのように解決するのですか?
ヘッダーに0以外のサイズを与える必要があるようです。
collectionView:viewForSupplementaryElementOfKind:atIndexPath
は呼び出されないようです。ですから
headerReferenceSize
プロパティを設定します。
flowLayout.headerReferenceSize = CGSizeMake(self.collectionView.frame.size.width, 100.f);
Swift 5+
flowLayout.headerReferenceSize = CGSize(CGSize(width: self.collectionView.frame.size.width, height: 100))
を実装するか、あるいは
collectionView:layout:referenceSizeForHeaderInSection
を実装してください。
関連
-
[解決済み] -didSelectRowAtIndexPath: 呼び出されていません。
-
[解決済み] iOSのステータスバーの文字色を変更する方法
-
[解決済み] 制約条件の変更をアニメーションで表現するには?
-
[解決済み] iOS7でスタイルUITableViewStyleGroupedを持つUITableViewの上部に余分なパディングがあるのはなぜですか?
-
[解決済み] Unwind segueは何に使うのか、どう使うのか?
-
[解決済み] UIButtonのタイトルを左揃えにするにはどうしたらよいですか?
-
[解決済み] テキストフィールドを移動する方法(次へボタン/完了ボタン)
-
[解決済み] UILabelで複数行のテキストを表示する
-
[解決済み] iOS 13でダークモードをオプトアウトすることは可能ですか?
-
[解決済み] iPhoneでナビゲーションバーを1ページ目だけ非表示にする
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
iOSコンパイルポッドでエラー CocoaPods could not find compatible versions for pod "XXXXX" が報告される。
-
[解決済み] iOSまたはmacOSで、インターネット接続が有効かどうかを確認するにはどうすればよいですか?
-
[解決済み] UITableViewの選択を無効にするにはどうすればよいですか?
-
[解決済み] Xcodeにおけるバージョンとビルドの比較
-
[解決済み] UITextFieldのテキスト変更イベント
-
[解決済み] SwiftでUIAlertViewを作成するにはどうしたらいいですか?
-
[解決済み] 「GCC使用時に「Xcode/iOSのライセンスに同意するには管理者権限が必要です。rootでsudoを使用して再実行してください。
-
[解決済み] UILabelで複数行のテキストを表示する
-
[解決済み] Swiftの配列を文字列に変換するには?
-
[解決済み] セキュリティで保護されたWebサービスにもアクセスするiOSアプリで、Facebook認証を行うためのデザイン