1

多くの数学演算を行うアプリを作成しています。ユーザーが tableView からアクティビティを選択できるようにしたい。次に、ユーザーに表示されない各アクティビティに割り当てられた番号を取得する必要がある方程式があります。たとえば、tableView に項目 (Running、Jumping、Skipping) があるとします。これらのアクティビティのそれぞれに、ランニング = 5、ジャンプ = 10、スキップ = 15 という数字があったとします。次に、ユーザーがアクティビティを選択します。たとえば、ランニングとしましょう。次に、アプリは数字の 5 を取得し、それを方程式で使用します。たとえば、10*(アクティビティ) とします。

とにかくこれを行うことはありますか?質問に混乱している場合は、何か言ってください。明確にするよう努めます。

4

4 に答える 4

1

のカスタム サブクラスを使用するかUITableViewCell、各セルのtagプロパティに情報を格納することができます (つまり、他の目的で使用していない場合)。didSelectRowAtIndexPath次に、コールバックを取得したときにこの情報を取得するだけです。

この情報をセル自体に格納することは、MVC (モデル ビュー コントローラー) 設計パターンに違反することに注意してください。これはプロジェクトの成功に有害ではありませんが、そうすることは良いコーディング プラクティスとは見なされません。バックエンドに保持しているデータモデルに情報を保存してから、それをコントローラーのセルに関連付ける必要があります

于 2012-08-14T20:35:28.217 に答える
1

次の 2 つの方法で実行できます。

  1. 対応する値をセルのタグとして設定します。cell.tag = 5;ランニングのように。ユーザーがタップするcellと、タグを取得して計算します。
  2. アクティビティ ラベルを渡したときにアクティビティ値を返すメソッドを記述します。セルをタップすると、次のような関数が呼び出され、そのint valueAct = [self getActivity:cell.textLabel.text];値が返されます。
于 2012-08-14T20:41:34.100 に答える
1

セル内に値を割り当てる必要はありません。セルにランニング、ジャンプ、スキップなどのテキストを入力したことを思い出してください。このデータはどこかに保存されています。おそらくディクショナリで、セル テキストと一緒に各アクティビティの値を管理するのも同様に簡単です。

ユーザーがアクティビティを選択すると、インデックス パスが取得されます。データの値を検索するだけです。

データを追加または変更するたびに、すべてが 1 か所にまとめられます。

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
  NSDictionary *dict = [plistDataArray objectAtIndex:indexPath.row];
  NSLog(@"Points: %@", [dict objectForKey:@"points"]);

}

plistの例

<array>
  <dict>
    <key>label</key>
    <string>Running</string>
    <key>points</key>
    <number>10</number>
  </dict>
  <dict>
    <key>label</key>
    <string>Jumping</string>
    <key>points</key>
    <number>5</number>
  </dict>
</array> 
于 2012-08-14T20:44:50.447 に答える
-1

tagセルのプロパティを使用します。

于 2012-08-14T20:35:01.623 に答える