0

この関数touchesMovedは、iPhoneとシミュレータで動作が異なります。

関数の繰り返し間隔(リフレッシュレート)は、touchesMovedシミュレーターよりもはるかに高速です。違いに対処する方法はありますか?

4

1 に答える 1

3

多くの場合、touchesMovedハンドラーで集中的な処理を行っているため、これが問題であると感じています。イベントが頻繁に到着すると、インターフェイスが遅れているように見えます。

これに対処する比較的簡単な方法は次のとおりです。まず、touchesMovedハンドラーで、指を追跡しているものの位置を表す変数にタッチ位置を格納します。

touchesMovedハンドラーからすぐに戻ります。NSTimerオブジェクトを作成し、View Controllerをそのデリゲートとして設定し、touchesMovedハンドラーで使用されていた再描画/ビュー移動動作を実行します。したがって、touchesMovedイベント間の時間に関係なく、ほぼ一定の動きが得られます。

本当に上級者の場合は、タイマーを使用する代わりにカスタムNSRunLoopを使用できますが、これはここで説明できる以上のものです:)一般的な考え方は次のとおりです。タッチイベントハンドラーですべてを実行しないでください。

于 2009-12-21T01:32:39.137 に答える