0

テキストを時々変更する UILabel があります。ただし、テキストを変更しても、古いテキストは消去されません。古いテキストの上に再描画され、蓄積されます。

UILabel は UITableViewCell 内にあります。

誰かがこの問題に遭遇しましたか? どのように修正しますか?

4

2 に答える 2

1

これは、メソッドでカスタマイズUITableViewCellすると発生します。[cell addSubView:UILabel]

それでは、少し詳しく説明しましょう。

メソッドを使用[tableView dequeueReusableCellWithIdentifier:CellIdentifier];して、使用するセルを取得します。

このメソッドは、次の 2 つのいずれかになります。

  1. UITableViewCell の新しいオブジェクトを返します。また
  2. 現在画面上にない UITableViewCell の古いオブジェクトを返します。(パフォーマンス向上のため)

新しい場合は問題ありませんが、そうでない場合は、
[view addSubView:view]メソッドで追加したコントロールが既に存在し
、同じコントロールのスタックのように同じ位置に再度追加します。

次の 2 つの方法で解決できます。

  1. 新しいセルの場合にのみ [UIView addSubView:UIView] を追加するようなコード。

  2. (私はこれをお勧めします) UITableViewCell のサブクラスを使用し、Custom UITableViewCell も呼び出します。

これに関する多くのチュートリアルを見つけることができます。

カスタム UITableViewCell の作成

カスタム UITableViewCell を最初から設計する方法

ストーリーボードを使用している場合は、非常に簡単です。

ストーリーボードを使用したテーブル ビューの作成

Xcode ストーリーボードを使用して、プロトタイプのテーブル ビュー セルで動的なテーブル ビューを構築する

ではごきげんよう...

于 2013-01-30T20:05:34.200 に答える