iPhoneやシミュレータでtouchesMoved行動
-
20-09-2019 - |
質問
関数touchesMoved
は、iPhoneシミュレータで異なる動作をします。
関数touchesMoved
の繰り返し間隔(リフレッシュレート)は、シミュレータよりもはるかに高速です。違いに対処する方法はありますか?
解決
多くの人々は、彼らがtouchesMovedハンドラ内で集中的に何かをやっているので、これは問題であることを見つけているとイベントが非常に頻繁に到着したとき、それはインターフェースが遅れるように見えます。
これに対処するため、比較的簡単な方法は次のとおりです。まず、touchesMovedハンドラで、指を追跡しているものは何でもの位置を表す変数でタッチ位置を格納します。
すぐにtouchesMovedハンドラからの復帰。 NSTimerオブジェクトを作成し、それの代理人としてあなたのビューコントローラを設定し、それがあなたのtouchesMovedハンドラにあったものは何でも再描画/ビューの移動動作を行うことがあります。したがって、あなたはtouchesMovedイベント間の時間に関係なくほぼ一定の運動を取得します。
あなたは本当にあなたがタイマーを使用する代わりにカスタムNSRunLoopを使用することができ進んだが、それは私がここで説明できる以上なら:)一般的な考え方は次のとおりです。タッチイベントハンドラですべてをやってはいけません。 P>
所属していません StackOverflow