0

UITableに表示している大量のデータがあります。表はアルファベット順にセクションに分かれています。ユーザーがセルを選択するとき、そのアイテムが配列のどこにあるかを把握する必要があります。セル内の唯一の識別データはラベルですが、これは役に立たないようです。配列内のデータも、必ずしもアルファベット順に並べられているとは限りません。配列内のどのアイテムを選択したかをどのように把握できますか。メタデータなどをテーブルセルに関連付けることはできますか?indexPathと配列の総数に基づいて何らかの計算を行うことを考えましたが、配列はアルファベット順ではなく、テーブルはアルファベット順であるため、これは機能しません。

これが理にかなっていることを願っています。助けてくれてありがとう。

4

2 に答える 2

1

これは通常、それ自体で解決する問題です。テーブルビューのデータソースを作成するときは、情報を一貫して表示できるように配列を並べ替える必要があります。これにより、一貫して情報にアクセスできるようになります。

つまり、-tableView:cellforrowatindexpath:のデータソース呼び出し用のテーブルを作成するために何かにアクセスしているので、セルの作成に使用するアルゴリズムは、didSelectCellAtIndexPathでインデックスパスを使用して選択したセルにアクセスするために使用するアルゴリズムと同じになります。 :。

于 2011-08-29T07:31:03.940 に答える
0

以下のUITableViewデリゲートメソッドを確認する必要があります。

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath

選択されたセルのインデックスパスが表示されます。インデックスパスを取得したら、次のように行とセクションのプロパティにアクセスできます。

indexPath.row;
indexPath.section;

これらの2つの値を取得したら、配列オブジェクトにアクセスして、各セクションで選択されたアイテムを確認できます。

NSLog(@"Section %i, Row %i, Item %@", indexPath.section, indexPath.row, [array objectAtIndex:indexPath.row]);
于 2011-08-29T07:23:33.807 に答える