有没有办法为表视图中的项目分配数字以在数学公式中使用



我正在制作一个可以执行大量数学运算的应用程序。 我希望用户能够从表视图中选取活动。然后,我有一个方程式,该方程式需要为用户看不到的每个活动分配一个数字。 因此,例如,如果表视图有项目-跑步,跳跃,跳过。 假设每个活动都有数字 跑步= 5,跳跃 = 10,跳过 = 15。 然后,用户选择一个活动,比如说正在运行。 然后,该应用程序将提取数字 5 并在等式中使用它,例如 10*(活动)。

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

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

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

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

- (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> 

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

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

您可以通过两种方式执行此操作:

  1. 将相应的值设置为单元格的标签。就像跑步的cell.tag = 5;一样。当用户点击cell检索标记并进行计算时。
  2. 编写一个方法,该方法将在传递活动标签时返回活动值。当您点击单元格时,调用类似:int valueAct = [self getActivity:cell.textLabel.text];的函数,这将返回它的值。

使用单元格的 tag 属性。

最新更新