2009-08-06 3 views
7

iPhone OSがtouchesBegan:occuresの後約0.25秒の人為的な遅延を起こすことは、おそらくあなたは知っています。これは、ユーザが移動しようとしているかどうかを確認するためです。この時間にデルタが十分に移動すると、touchesMoved:シーケンスが開始されます。touchesの直後にタッチポイントをプルすることは可能ですか?呼び出されますか?

しかし、あなたのアプリで触覚的なタッチの動作を実装する場合は、遅延が欲しくないかもしれません。とても醜いですね!何かを動かすと、0.3秒間何も起こりません。それからBANGと全部が大きなフリップで動き始めます。これは、動きのある新しいタッチシーケンスが始まるたびに発生します。これは真剣に吸う。もちろん、ユーザーが実際に移動しようとしているかどうかを判断したい場合があるため、状況によっては必要です。タッチの動きを追跡することによって動作するカスタムビルドスライダまたは他の種類の触覚制御ではそうではありません。

iPhone OSで意図的に起こっていることを知った後、この問題を解決する方法を知りたいと思います。ユーザーが左または右に移動する可能性があるため、動きを予測できません。私はtouchesBeganでこれを知らない:。 0.3秒でアプリが反応しないように見えるだけです。

しかし、希望があるようです。Convertbotには全く問題はありません。タッチして移動するとすぐにホイールが回転します。遅延はなく、遅延はありません。私は彼らのやり方を彼らのブログで尋ねたが、まだ回答はなかった。

システムから座標を手動でタッチする方法があることを願っています。 touchesBegan:touchesMoved:がアクションを起こすまで、60hzで引っ張る間隔を開始します。

この惑星の最大の疑問は「それはどうですか?

+0

私はこれからBountyを作りたいと思います。しかし、私はできないようですか? –

+0

「強打!すべてが大きなフリップで動き始める!」私はこれも解決策を探しています。 – bobobobo

+0

いつか私はこれで噛まれました。私は少し前にこれについて質問しましたが、それは私のアニメーション(私はそれが実際のレンダリングコードだと思った)でジャーキネスを引き起こしていた遅延されたtouchesMovedイベントだったことを認識していませんでした。本当に私を驚かせるのは、UIScrollViewが即座に移動イベントを取得するということです。 – U62

答えて

4

レスポンダがUIScrollViewにある場合は、scrollViewのdelayContentTouches設定をNOに設定してください。これは、UIResponderのtouchesBegan:メソッドとUIControlのbeginTrackingWithTouch:メソッドの両方で機能します。

0

UIViewサブクラスがUITableViewまたはその子孫の1つ(UITableViewなど)のサブビューである場合、スクロールビューまたはテーブルビューではdelaysContentTouchesをNOにする必要があります。そうすれば、すぐに最初の接触がtouchesBegain:に送信されます。

しかし、ConvertBotはUIScrollViewをまったく使用していないと思います。回転する部分自体を実装するカスタムUIViewでしょう。あなたのUIがスクロールを必要としない場合は、コンテンツビューにUIViewサブクラスを置くだけです。タッチイベントを傍受するスクロールビューがないため、delaysContentTouchesを設定する必要はありません。

関連する問題