我正在制作一个可以进行大量数学运算的应用程序。我希望用户能够从tableView中选择一个活动。然后,我有一个等式,需要为每个活动分配一个用户看不到的数字。例如,如果tableView有项目 - Running,Jumping,Skipping。让我们说这些活动中的每一个都有数字Running = 5,Jumping = 10,Skipping = 15.然后用户选择一个活动,让我们说运行。然后,应用程序将拉出数字5并将其用于等式中,例如10 *(活动)。
有没有这样做?如果你对这个问题感到困惑,请说些什么,我会尽力澄清。
答案 0 :(得分:1)
您可以使用UITableViewCell
的自定义子类,也可以将信息存储在每个单元格的tag
属性中(即如果您没有将其用于其他任何属性)。然后,当您获得didSelectRowAtIndexPath
回调时,只需检索此信息。
应该注意,将该信息存储在单元本身中违反了MVC(模型 - 视图 - 控制器)设计模式。虽然这不会对项目的成功产生不利影响,但这并不是一个好的编码实践。您应该尝试将信息存储在后端保留的某些数据模型中,然后将其与控制器中的单元格绑定
答案 1 :(得分:1)
您可以通过两种方式实现:
cell.tag = 5;
一样运行。当用户点击cell
检索标记并进行计算时。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
属性。