1

かなり単純な問題。cellForRowAtIndexPathカスタムを追加する必要がありUILabelます。だから私は与えられた方法でこれを試します:

UILabel *titleLbl = [[UILabel alloc] init];
//Other properties etc

if (indexPath.row == 0) titleLbl.text = @"1";
else if (indexPath.row == 1) titleLbl.text = @"2";

[cell addSubview:titleLbl];

問題は、テーブルを下にスクロールすると、ラベルが繰り返され、複製され始めることです。

どうすればこれを回避できますか?

ありがとう。

4

2 に答える 2

3

そのラベルをサブビューとして追加します

if (!cell) {
  cell =...;
  UILabel *label;
  label.tag = 1;
  [cell addSubview:label];
}

UILabel *label = (UILabel*)[cell viewWithTag:1];
if (indexPath.row == 0) label.text = @"1";

このように、セルが割り当てられているときにのみ追加されます。そのラベルを取得するには、タグを付けて、セルのviewWithTagメソッドを使用します

于 2012-07-28T16:21:28.170 に答える
0

これは、セルが再利用され、ラベルを追加するたびに発生するためです。

UILabel を追加する UITableViewCell をサブクラス化することをお勧めします。ラベルのテキストを nil に設定する prepareForReuse メソッドをオーバーライドすることを忘れないでください。

于 2012-07-28T16:20:57.923 に答える