表のセルに点滅する画像 (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 なしでテーブルが更新されるとは思えません。