2011-07-22 5 views
0

SSCollectionViewとSSCollectionViewItemで問題が発生しました。SSCollectionView SSCollectionViewItem - 表示されるアイテムがありません

まず最初にIBから初期化したいと思います。しかし、それは私にとってはうまくいかないでしょう。

@interface SelectFooViewController : SSCollectionViewController { ... } 

と対応XIBのfilesOwnerとしてそれを使用しています: 私はあるSelectFooViewControllerを持っています。

SelectFooViewController* selectFooVC = [[SelectFooViewController alloc] 
initWithNibName:@"SelectFooViewController" bundle:nil]; 

しかし、私はviewDidLoad()内でそのプロパティを初期化しなければなりませんでした。

さらに、SSCollectionViewItemsのbackgroundColor以外は表示できません。私が欲しいのは、textLabelとイメージです。

- (SSCollectionViewItem *)collectionView:(SSCollectionView *)aCollectionView itemForIndexPath:(NSIndexPath *)indexPath { 
    SSCollectionViewItem *item = [[[SSCollectionViewItem alloc] initWithStyle:SSCollectionViewItemStyleImage reuseIdentifier:itemIdentifier] autorelease]; 

    SSLabel* label = [[SSLabel alloc] init]; 
    [label setText:@"foo"]; 
    item.imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"foo.png"]]; 
    item.textLabel = label; 
    [label autorelease]; 

    return item; 
} 

デリゲートメソッド(行数、セクション数などを決定するための)が実装され、期待どおりに機能していることが確認できます。しかし、私のアイテムはすべて空です - しかし、期待されるポップアップをクリックして反応します。

私は何をしたのですか? - おかげで...

編集:私はまた、SSCatalogプロジェクトに変更することで、局所的な画像を表示することができませんでした

答えて

2

私は各プロパティ(textLabel、detailTextLabel、imageView)のフレームを自分で設定する必要があることを知りました。それはそれを修正した。

0

インスタンスを作成するとSelectFooViewControllerはちょうどこの行を挿入

selectFooVC.view; 

または

selectFooVC.view.hidden = NO; 

次にビューに追加します。

これは、明示的にアクセスするまでビューが初期化されないためです。したがって、アイテムはクリックしたときにのみロードされ、すぐにはロードされません。あなたはそれをハックと呼ぶことができますが、私はそれを1つと呼んでいません。 :-)

+0

私が以前に読んだのは、遅延ロードです。しかし、不思議なことに私はそれに悩まされたことはありません。残念ながら私のinitWithNibNameの後に行を追加しても、何も変わらない... – Jakob

+0

コードの2番目の部分から返された項目をどこに追加していますか? –

+0

デリゲートを設定してリロードを適切に呼び出しましたか? –

関連する問題