有没有办法为tableView中的项目分配数字以用于数学方程式?

时间:2012-08-14 20:31:57

标签: ios math tableview

我正在制作一个可以进行大量数学运算的应用程序。我希望用户能够从tableView中选择一个活动。然后,我有一个等式,需要为每个活动分配一个用户看不到的数字。例如,如果tableView有项目 - Running,Jumping,Skipping。让我们说这些活动中的每一个都有数字Running = 5,Jumping = 10,Skipping = 15.然后用户选择一个活动,让我们说运行。然后,应用程序将拉出数字5并将其用于等式中,例如10 *(活动)。

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

4 个答案:

答案 0 :(得分:1)

您可以使用UITableViewCell的自定义子类,也可以将信息存储在每个单元格的tag属性中(即如果您没有将其用于其他任何属性)。然后,当您获得didSelectRowAtIndexPath回调时,只需检索此信息。

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

答案 1 :(得分:1)

您可以通过两种方式实现:

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

答案 2 :(得分: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> 

答案 3 :(得分:-1)

使用单元格的tag属性。