2

私は最初のより複雑なアプリに取り組んでいますが、これに対する解決策が見つかりませんでした。アプリに約 64 個のアイコンをロードしました。テーブル ビューの場合、ユーザーは各セルにこれらのアイコンの 1 つを割り当てることができます。基本的に、セルを編集すると、64 個のアイコンすべてを含む新しい UIView が表示されます。現在選択されているアイコンには境界線が必要です。別のアイコンをクリックすると、境界線が移動し、テーブルビューで選択されたアイテムにアイコンが割り当てられます。

私の問題は次のとおりです: a) これらの 64 個のアイコンをビューにロードするにはどうすればよいですか? すべての UIImageViews を含むビューを作成しましたが、それらをこれらのイメージビューにロードするにはどうすればよいですか? それらを自分のディレクトリにコピーした場合、それらはどこに保存されますか? また、それらにアクセスするにはどうすればよいですか? b) このビューに 64 個の異なる UIView を手動で配置し、それらを IBOutles にリンクするよりも簡単な方法はありますか?

4

4 に答える 4

2

UICollectionView を使用すると、問題を簡単に解決できます。UICollectionView は UITableView のように機能します。

UICollection の詳細については、リンクを参照してください。

http://skeuo.com/uicollectionview-custom-layout-tutorial

UICollectionビューを使用すると、配列に保存された画像オブジェクトを渡すだけで済みます

于 2013-04-30T13:14:22.173 に答える
0

コードでこれを行う必要があります。すべてのファイル名を に入れNSArray、それを繰り返し、各ステップでプログラムで を作成することをUIImageViewお勧めしますViewControllerUIButtonただし、タップすると「選択」され、任意の画像を入れることができるようにサブクラス化することをお勧めします。

于 2013-04-30T13:11:04.033 に答える
0

オープン ソース コンポーネントである gridView を使用できます。ここにリンクがあります。

グリッドビュー

また、0 から 63 のように各 imageView にタグを割り当てることもできます。ユーザーが 0 番目の画像を選択したときに、そのタグをローカル変数に割り当てて、次回ユーザーがグリッドを表示したときに、ユーザーが以前に 0 番目のインデックス画像を選択したことを識別できるようにします。お役に立てば幸いです。

于 2013-04-30T13:24:27.443 に答える
0

それは、さまざまなトピックに関する多くの質問です。

アイコン/画像をロードするにはどうすればよいですか?

UIImage *image = [UIImage imageNamed:@"fubar.png"];
UIImageView *imageView = [[UIImageView alloc] initWithImage:image];

プロジェクトで画像をコピーするだけの場合、それらはメイン バンドルの一部であり、ほとんどの場合、保存場所をほとんど無視します。それらにアクセスするのはとても簡単です。(上記を参照)

「もっと簡単な方法」はありますか...もっと簡単な方法があるかどうか知りたい場合は、私たちに方法を教えてください. ただし、単純な命名規則とループが機能すると思います。

NSMutableArray *icons = [NSMutableArray array];
NSString *iconName;
UIImage *image;
UIImageView *imageView; = [[UIImageView alloc] initWithImage:image];
for (int count=0 ; count < 65 ; count++) {
    iconName = [NSString stringWithFormat:@"icon%d.png", count];
    image = [UIImage imageNamed:iconName];
    [icons addObject:image];        
}

次に、icons配列を の基礎として使用しますUITableView。それについてですが。代わりにa の使用を検討することをお勧めしますUICollectionView。テーブルに似ていますが、単なる行ではなく項目のグリッドです。大量の画像セットに適しています。

画像をビューにコピーする方法については、あなたUITableViewとあなたの両方UICollectionViewに、データを「要求」して位置を与えるメソッドがあります。設定した位置情報に基づいて、要求し、残りを処理します。次のように見えるかもしれません

- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
    // ...
    // remembering 'icons' is our array of image data
    cell.imageView.image = icons[indexPath.row]; 
    // ...
}

コメントから編集:アプリバンドルにファイルが存在するかどうかを確認する方法は? (私の答えは単なる切り貼りです)

[[NSFileManager defaultManager] fileExistsAtPath:pathAndFileName];
于 2013-04-30T13:21:43.763 に答える