2

私はiOSアプリケーションを開発しており、NSTimerを0.5秒ごとに繰り返しトリガーし、そのタイマーに基づいて曲のプログレスバーを移動します。私は、ユーザーが同じビューに保持しているいくつかの画像に触れたときにタッチイベントを処理します。

ただし、ユーザーが画像に触れると、プログレスバーを移動するためのタイマーが一時的に停止し、再び続行します。同じビューでタイマーとタッチイベントを同時に処理したい場合に対応する必要がある問題はありますか?

画像に触れたときに一時的に停止する理由はありますか?

4

1 に答える 1

1

アプリのメイン スレッドで処理が多すぎるようです。タイマー メソッドの呼び出しは、タッチ イベントと同様に、メインの実行ループで配信されます。タッチ イベント ハンドラーもタイマー ハンドラーも、メイン スレッドで深刻な計算作業や IO 作業を行っていないことを確認してください。

iOS の最高レベルのオーディオ フレームワーク (AVPlayer) を使用すると、オーディオ トラック内の現在の位置が 1 秒に 1 回だけ更新されます。したがって、タイマーを 0.5 秒ごとに呼び出すのはやり過ぎかもしれません。1 秒または 0.9 秒ごとにすると、競合が少し減るかもしれません。

于 2012-06-02T12:23:38.027 に答える