0

この(初心者の)問題にしばらく立ち往生しているので、今助けを求めています:)

私の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
...

つまり、ジーナとハリーは、同じスコアであっても、4と5ではなく4位で同点になります。

これは私がcellForRowtIndexPathメソッドでできることですか?topPersons NSMutableArrayまたは、人の名前の一部として行番号/ランクを含めるように更新する別の方法でこれを行う必要がありますか?

どんな助けでもいただければ幸いです-ありがとう!

4

1 に答える 1

2

そのタイプのロジックでは、セルビューまたはテーブルビューを乱用しません。別の方法でランクを計算し、topPersonのオブジェクトにランクを追加したいと思います。

cellForRowAtIndexPathは特定の順序で呼び出されません。また、セルビューのメソッドが特定の順序で呼び出されることもありません。そして、それはこのような計算を実行することを困難にします。

もちろん、(indexPath.row-1)番目のtopPersonsオブジェクトが同じ値であるかどうかを判断し、その場合は(indexPath.row-2)番目のtopPersonsオブジェクトも同じ値であるかどうかを判断し、その場合は(indexPath.row.2)thtopPersons...など。しかし、そうすることはお勧めしません。

于 2012-11-16T08:56:31.947 に答える