1

表のセルに点滅する画像 (2 つの画像を切り替える) が必要です。

私にとって最も自然に思えたのは、次のとおりです。

  • -blink を呼び出して、NSTimer を 0.5 秒ごとに設定します。
  • -blink:blinkStatus 変数のオン/オフを切り替えます
  • -cellForRowAtIndexPath: では、blinkStatus に応じて画像を設定します

今、私も [myTableView reloadData] を -blink: メソッドで呼び出しているので、更新されると思います。

これは理にかなっているようです。セルの状態実際に変化している (画像が変化している) ため、テーブルを更新することは理にかなっています。

これは機能します。 ただし、 reloadData はユーザーの操作に干渉するようです。

テーブル編集モードでユーザーが (-) を選択して削除すると、[削除] ボタンが表示され、reloadData が発生すると非表示になります。[myTableView.editing] が false の場合にのみ reloadData を実行するのは簡単です。(そして、編集モード中に点滅しないことは大きな問題ではありません。)

ただし、reloadData はまだ混乱しているようです (セル選択のクリアなど)。また、reloadData を 0.5 秒ごとに呼び出す効率についても心配しています。

その画像を点滅させるよりスムーズな方法はありますか? 点滅しているセルへのポインターを保存し、タイマーの .image プロパティを更新することを考えていました。しかし、セルはテーブルのさまざまな行に再利用されるため (痛い)、これは悪い考えのように思えます。.image プロパティを更新するだけで reloadData なしでテーブルが更新されるとは思えません。

4

2 に答える 2

2

-blink適切なインターフェース( など)を使用している限り、メソッドで画像を切り替えるだけで、cell.imageView.image画像は自動的に更新され、呼び出す必要はありませんreloadData

于 2013-02-07T14:18:54.797 に答える
1

[UIImageView animationImages]プロパティを使用しようとしましたか?画像を提供し、必要な期間と animationRepeatCount を設定し、startAnimating を呼び出すだけです

于 2013-02-07T14:23:57.867 に答える