0

誰かがこれを行う方法のサンプルコードを手伝ってもらえますか:私はUITableViewを持っていて、すでにすべてを設定しています。1つのセルをクリックすると、画像が表示されます。すでに持っている画像は8つあります。したがって、それぞれ異なる名前の8つのセルがあるので、どうすればよいですか?たとえば、セル名、「apple」、「orange」、「banana」など、それぞれに1枚の画像が必要ですが、もちろん注文、私はバナナとバナナなどを意味します。私は非常に単純なことを知っていますが、これの例は見つかりませんでした。私はまったく新しいです、ありがとう、XD ...

4

2 に答える 2

3

必要なのは、テキストの説明と画像で構築された2つのNSArrayです(これは、1つと2つのキーと値のペアで実行することもできNSArrayますNSDictionary)。その場合、各辞書には2つのキーと値のペアがあります(1つはテキスト用、もう1つは画像用)。

ただし、簡単にするために、2つのNSArrayを使用します。

だからこのようなもの:でviewDidLoad

textArray = [[NSArray alloc] initWithObjects:@"Banana",
                          @"Orange",
                          @"Apple",
                          @"Grape",
                          @"Pineapple",
                          @"Apricot",
                          @"Pear",
                          @"Kiwi", nil];
imagesArray = [[NSArray alloc] initWithObjects:[UIImage imageNamed:@"Banana.png"],
                        [UIImage imageNamed:@"Orange.png"],
                        [UIImage imageNamed:@"Apple.png"],
                        [UIImage imageNamed:@"Grape.png"],
                        [UIImage imageNamed:@"Pineapple.png"],
                        [UIImage imageNamed:@"Apricot.png"],
                        [UIImage imageNamed:@"Pear.png"],
                        [UIImage imageNamed:@"Kiwi.png"],
                        nil];

*これは、プロジェクトに上記の名前のpng画像があることを前提としています。

次に、UITableViewデータソースメソッドとデリゲートメソッドの場合:

#pragma mark - UITableView Methods
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    // Return the number of sections.   
    return 1;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    // Return count of our text array
    return [textArray count];
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"tvCell"];


    cell.textLabel.text = [textArray objectAtIndex:indexPath.row];
    cell.imageView.image = [imagesArray objectAtIndex:indexPath.row];
    return cell;
}

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    // Do whatever you need to here
}

完全なプロジェクトはここからダウンロードできます(24時間そのままにしておきます)

于 2012-05-20T19:34:56.367 に答える
0

もちろん、これを行うにはいくつかの方法があります。コードをまったく含まない最も簡単な方法の1つは、Xcodeでシナリオビルダーを使用することです。

1-シナリオを使用しているアプリケーションにUITableViewControllerを追加します2-このコントローラーでテーブルビューを選択し、プロパティで「静的リスト」に設定します(このプロパティの正確な名前は覚えていません-編集します見つからない場合に追加する私の答え)3-リスト内のアイテムの数と各セルを編集して、必要なラベルを付けます4-シーンにUIControllerを追加し、内部に画像を追加します5-各テーブルをリンクしますセグエを使用して一致するコントローラーにセルを移動します(ctrl-クリックしてドラッグするか、option-クリックします)6-[ビルドして実行]をクリックします。

それだけです-1行のコードではありません!

追伸:私は今iPhoneを使用していますが、必要に応じて完全な例を投稿できます。これは、実際には、迅速なプロトタイプにとってはかなりクールなトリックです。

于 2012-05-19T22:30:35.033 に答える