私は XCode が初めてで、まだ XCode を学習しています (現在 Xcode 4.5.2 を使用しています)。
IconCollectionに関する Apple のチュートリアルに基づいて、CollectionView データソースとして配列に格納された ImageMetada フィールドを使用して、一種のサムネイル ビュー アプリを作成しようとしています。
ここにいくつかの基本的な情報があります:
- 1 xib ファイル ( MainMenu.xib )
- メイン ビューにCollectionViewとTableViewを含む 1 つのウィンドウ。
- Custom クラス Name : ThumbsViewControllerでウィンドウとアプリケーションを委譲する 1 つのオブジェクト コントローラ
- xib に配置された (メイン ウィンドウまたはそのサブビューではなく) コレクション アイテムの 1 つのカスタム ビューは、1 つの ImageView、1 つのラベル (テキスト フィールド)、および 2 つのボタンで構成されます。このビューは、カスタム クラスThumbViewItemを使用します。最初のボタンで日付情報を設定し、2 番目のボタンで削除します。私の目的は、現在のアイテムにマウスを置いたときです。最初のボタンはメタデータに日付情報が見つからない場合にのみ有効にし、2 番目のボタンはメタデータに日付情報が見つかった場合にのみ有効にする必要があります。それぞれのioutletをThumbViewItem.hファイル ( imgpic、imglabel、imgbtn1、および imgbtn2 ) に設定しました。このアイデアは、Adobe Lightroom 4 の下部にある写真コレクションのサムネイル ビューに少し似ているかもしれません。
- ビュー アウトレットがThumbViewItem (4) に接続された NsCollectionViewItem と、ウィンドウのCollectionViewに接続された itemPrototype アウトレット (2)
- ThumbsViewController.h(3) で定義された pic とメタデータを含む画像情報への配列 ( imageInfos )。この配列を collectionview と tableview で使用するための共有配列として使用する予定です
- 配列に格納されるデータは、 imageinfo.hで定義されているimageinfoというインターフェイスです。サムネイル画像とメタデータ ディクショナリを配置しました。
テーブルは、ファイル名、パス、およびメタデータ (日付と GPS 情報) を含む配列に格納された情報を正しく表示できます。しかし、CollectionItem のカスタム ビューはそうではありません。画像も名前も情報もありません。
デバッグ時に、IBOutlet : imgpic、imglabel、imgbtn1、および imgbtn2 のそれぞれが null であることがわかりました。
すべての IBOutlet プロパティ/リンクが機能しなかったのはなぜですか?
私が忘れたことはありますか?
カスタム描画目的で collectionitem に関連付けられたカスタム ビューから imageinfos 配列に格納されている imageinfo を取得する方法は?
CollectionView ---> コレクション アイテム ---> カスタム ビュー
たとえば、インデックス番号 4 のコレクションアイテムに関連付けられたカスタムビューでカスタム描画を実行しているときに、そのインデックス (番号 4) を取得するにはどうすればよいですか?
インデックスを取得する私のコードは、そのスーパービューをコレクションビューとして取得し、次のようにスーパービューのサブビューでインデックスを取得することです:
-(NSInteger) getIndexInCollection
{
return [[[self superview] subviews] indexOfObject:self];
}
このコードの問題点は、機能する場合と機能しない場合があることです。
どんな助けでも大歓迎です。ありがとう。