2010-11-19 31 views
1

私はカスタムセルを使ってUITableViewを持っています。セルには、いくつかのラベル、開始ボタンと停止ボタン、ボタンから発射停止されるNSTimerがあります。NITimerの問題を引き起こすUITableViewセルの再利用

ラベルにはsqlliteのデータ(コアデータを使用)が表示され、タイマーは個々のセルごとに個別に実行されます。

これ以上のセルがあり、セルの再利用がトリガーされるまで、これはすべて正常に機能します。その時点で、各セルはラベルに正しいデータを表示しますが、最初のセルのタイマーを開始すると、そのセルが表示された瞬間に次のセルが表示されます(前のセルを再利用します)。よく

各セルにセルの再利用を伴う独自のタイマースレッドがあることを保証する方法を理解できません。

ご協力いただければ幸いです。

答えて

5

セルには内部状態(タイマー)があります。セルが再利用されると、その状態は失われます(または、再利用されたセルが前の状態を継承する価値もあります)。次の2つのオプション

  • を有する細胞
  • を再利用していない(例えば、コントローラにあなたのタイマーを動かす)細胞はステートレス作る
+1

細胞を再利用されないことは愚かであるが、細胞はステートレス作ることは1が常にべきかであります問題に近づく。その時点で+1してください。 – jer

+0

あなたの答えは、各セルがどのレベルの状態を維持しているかを理解するのに役立ちました。タイマーをセル内に維持し、それに応じて表示されるデータを管理することができました。再度、感謝します。 – Rod

+0

@Rod、あなたはあなたのソリューションを見せてくれますか? – Yijun

関連する問題