0

TableViewの各セルに8から始まり、12に達したときに、アプリ時間で呼び出したカウンターに番号を付けるコードを作成しました。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{

static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];

while (hour < 15)
{
    if (hour == 12) {
        hour=1;
    } else {
        NSString *str = [NSString stringWithFormat:@"%d",hour];
        cell.textLabel.text = [courses objectAtIndex:indexPath.row];
        cell.detailTextLabel.text = str;
        NSLog(@"%@",str);
        hour++;
        return cell;

    }
}

return cell;}

シミュレーターでアプリを実行するとうまくいきましたが、スクロールすると1番目と2番目のセルの数値が変わり続け、テーブルをスクロールしても数値が変わらないようにします。

どうすればそれができますか?前もって感謝します。

4

1 に答える 1

4

hourメソッドの外部で定義されており、セルのにリンクされていないようですindexPath。表示された文字列がセルに対して一定のままであることを確認したい場合は、おそらくそれを単独で決定論的に計算できるはずですindexPath。したがって、テーブルがセルを順不同でロードしても、正しいテキストが維持されます。

于 2013-03-27T04:11:59.650 に答える