0

地元のサッカークラブ向けのアプリを作成しています。画面上で、すべてのプレーヤーを一種のグリッドで表示したいと思います。グリッド内のプレーヤーの写真をクリックすると、そのプレーヤーに関する詳細情報が表示されます。customTableViewCellを使用しています。このtableViewセルには6つのボタンが含まれています。各ボタンの後ろには、プレイヤー情報があります。このようにグリッドにプレイヤーの画像を設定しています。まず、custumTableViewCellにメソッドがあります。

-(void)setImage:(UIImage *)image forPosition:(NSUInteger)position{
    if(position == 1){
        [_btnPlayer1 setImage:image forState:UIControlStateNormal];
    }else if(position == 2){
        [_btnPlayer2 setImage:image forState:UIControlStateNormal];
    }else if(position == 3){
        [_btnPlayer3 setImage:image forState:UIControlStateNormal];
    }else if(position == 4){
        [_btnPlayer4 setImage:image forState:UIControlStateNormal];
    }else if(position == 5){
        [_btnPlayer5 setImage:image forState:UIControlStateNormal];
    }else if(position == 6){
        [_btnPlayer6 setImage:image forState:UIControlStateNormal];
    }

}

そして私のCellForRowAtIndexPathで私は次のことをしています。

 NSInteger frcRow = indexPath.row * IMAGES_PER_ROW; // row in fetched results controller

    for (int col = 1; col <= IMAGES_PER_ROW; col++) {
        NSIndexPath *path = [NSIndexPath indexPathForRow:frcRow inSection:0];
        Team *team = [self.fetchedResultsController objectAtIndexPath:path];
        NSData *imgData = [[NSData alloc] initWithContentsOfURL:[NSURL URLWithString:team.image]];
        UIImage *image;
        if (imgData == nil) {
            // default image
            image = [UIImage imageWithContentsOfFile:@"keeperNil.jpg"];
        } else {
            image = [UIImage imageWithData:imgData];
        }
        [cell setImage:image forPosition:col];
        frcRow ++;
    }
    return cell;

しかし、ここで、どのボタンが押されているかを判別してから、正しい情報を表示するdetailViewControllerにセグエしたいと思います。誰かが私がそれをどのように行うことができるか考えましたか?

敬具。

4

1 に答える 1

0

これは、やりたいことを達成するための間違った方法です。Three20 などのフォト ビューアーを見つけて (Three20 を例に取ります。これは古くて ARC がなく、Git にはよ​​り良い代替手段があります)、各プレーヤーの写真の選択に基づいて新しいビューに移動します。

あなたが本当にしたいのであれば(IMOのデザインが悪いように思えますが)、6つのボタンを接続してタグ付けし、選択したボタンタグに基づいてプレーヤーを選択できますが、これはUITableViewの最適な使用法とは思えません

于 2012-10-11T09:16:45.967 に答える