一直坚持这个(初学者)问题所以现在请求帮助:)
在我的UITableView
中,我显示的行包含以下行:1)行#,2)一个人的姓名,以及3)他们的分数。
它看起来像这样:
1. David 100
2. Arron 92
3. Cindy 90
4. Gina 85
5. Harry 85
6. Daniel 82
...
我在UITableView中使用此代码生成此代码:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell = [tableView
dequeueReusableCellWithIdentifier:@"PersonCell"];
cell.textLabel.text = [NSString stringWithFormat:@"%d. %@", indexPath.row+1,[topPersons objectAtIndex:indexPath.row]];
cell.detailTextLabel.text = [[topPersonsScore objectAtIndex:indexPath.row] stringValue];
return cell;
}
但是,我试图通过复制行#来考虑绑定分数,例如:
1. David 100
2. Arron 92
3. Cindy 90
4T. Gina 85
4T. Harry 85
6. Daniel 82
...
所以Gina和Harry现在并列第4名,而不是4和5,尽管他们的成绩相同。
我可以用cellForRowtIndexPath
方法做些什么吗?或者我应该使用另一种方法更新我的topPersons
NSMutableArray
以将行#/ rank作为此人姓名的一部分进行更新?
任何帮助将不胜感激 - 谢谢!
答案 0 :(得分:2)
我不会滥用该类逻辑的单元格视图或表格视图。我宁愿用另一种方法计算排名,并将排名添加到topPerson的对象中。
不以任何特定顺序调用cellForRowAtIndexPath。也没有以任何特定顺序调用任何单元格视图的方法。这使得执行这样的计算变得困难。
您当然可以确定(indexPath.row-1)topPersons对象是否具有相同的值,并且在这种情况下确定(indexPath.row-2)topPersons对象是否也具有相同的值,在这种情况下确定(indexPath.row.2)th topPersons ......等等。但我不建议这样做。