カスタムUICollectionViewCell
プロトタイプ(Xcode 5.0.2)を設計しようとしていますが、インターフェイスビルダーでは、ペン先の設計中にセルをUICollectionView
に追加できません。ストーリーボードを使用している場合は、アイテム(セル)の数を設定でき、Interface Builderはセルを完全に作成して表示しますが、ペン先のコレクションビューにセルを追加できません。私はもう試した:
同じ問題についての質問もいくつか見ました。
それらはすべて、それらをプログラムで行うこと、および/またはセルに別のペン先を使用することを指摘しています。私はそれらを行う方法を知っていますが、コレクションビュー内のコレクションビューセルをnibの同じビュー内に設計する方法はありますか?ストーリーボードのように?なぜInterface Builderでは、ストーリーボードを完全に使用できる(そして奨励する)nibでそれができないのですか?
簡単な答えは「いいえ」です。これは実行できません。ストーリーボードをXIBのコレクションと考えてください。 XIBは、特定のビューのファセットを定義するだけなので、実行時に構築できます。
コレクションビューとそのストーリーボードの実装に関しては、ストーリーボードではビューコントローラーのネストとXIBを使用したコレクションビューの定義が可能であることを理解することが重要です。ストーリーボードはアプリケーションの「ストーリー」またはシーンを定義する手段であるため、コレクションビュー内で使用する再利用可能なビューを宣言できるのはごく自然なことです。
XIBの背後にある基本的な考え方は再利用性にあるため、XIBについても同じことは言えません。これにより、コントローラーがこれらのクラスをコレクションビューに登録している限り、XIBで定義されたコレクションビューでセルを使用できます。このようにすると、別のコントローラーが同じXIBを使用して異なるセルなどを登録できるため、再利用性の利点が得られます。
したがって、XIBが目指す単一責任の原則(それと呼ぶことができる場合)に違反するため、XIB内のコレクションビューのサポートされるセルの宣言を許可することは、はるかに混乱します。
最善の解決策は、インスタンス化時に関連するセルを登録するカスタムコレクションビューサブクラスを定義し、このクラスをXIBで使用することです。