1

我正在制作一个执行大量数学运算的应用程序。我希望用户能够从 tableView 中选择一个活动。然后我有一个方程,需要为用户看不到的每个活动分配一个数字。例如,如果 tableView 有项目 - Running、Jumping、Skipping。假设每个活动都有数字 Running= 5,Jumping = 10,Skipping= 15。然后用户选择一个活动,比如说跑步。然后,该应用程序将提取数字 5 并将其用于等式中,例如 10*(活动)。

有没有办法做到这一点?如果您对这个问题感到困惑,请说些什么,我会尽力澄清。

4

4 回答 4

1

您可以使用自定义子类UITableViewCell或将信息存储在每个单元格的tag属性中(也就是说,如果您没有将其用于其他任何事情)。didSelectRowAtIndexPath然后在收到回调时简单地检索此信息。

应该注意的是,将这些信息存储在单元本身中违反了 MVC(模型-视图-控制器)设计模式。虽然这不会对项目的成功造成不利影响,但这样做并不被认为是良好的编码实践。您真的应该尝试将信息存储在您保留在后端的某个数据模型中,然后将其绑定到控制器中的单元格

于 2012-08-14T20:35:28.217 回答
1

你可以通过两种方式做到这一点:

  1. 将相应的值设置为单元格的标签。喜欢cell.tag = 5;跑步。当用户点击cell检索标签并计算时。
  2. 编写一个方法,当您传递活动标签时将返回活动值。当您点击一个单元格时,调用一个函数,例如:int valueAct = [self getActivity:cell.textLabel.text];这将返回它的值。
于 2012-08-14T20:41:34.100 回答
1

您不需要在单元格内分配值。请记住,您在单元格中填充了诸如跑步、跳跃和跳跃之类的文本,并且这些数据存储在某个地方。维护每个活动的值以及单元格文本同样容易,也许在字典中。

当用户选择一个活动时,您将获得索引路径。只需查找数据中的值。

如果您每次都添加或更改数据,它们都将在一个地方。

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

}

示例列表

<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 回答