iPhoneシミュレータの[ハードウェア]メニューから[シェイクジェスチャ]を選択すると、最初のレスポンダーは常に2つのシェイクイベントを受け取ります(その間に数ミリ秒あります)。
残念ながら、シミュレーターのこれら2つのイベントはUIScrollview
、特定の位置にスクロールする必要があるという問題を引き起こします。これは、最初のイベントに対してのみ行われます。
だから私は次の2つの質問があります(それらは何らかの形で相互に関連しています)...
質問1
シミュレータが1つの「シェイクジェスチャ」に対して2つのシェイクイベントを生成するのはなぜですか?
注:これらの2つのイベントは、実際のデバイスでテストする場合には発生しません。実際のiPhoneを振ると、常に1つのイベントが発生します。
質問2
getの後続の2つの呼び出しが[myScrollView setContentOffset:CGPointMake(x,0) animated:YES];
両方とも正しく実行されることを確認する方法はありますか?
注:興味深いと思うのは、通話に設定animated:
すると問題なく機能することです。両方の通話が実行されます。残念ながら、これは私が取り組んでいるアプリのオプションではありません。NO
setContentOffset
ところで、問題は簡単に再現できます。setContentOffset
アニメーションでを2回呼び出しUIScrollview
て、最初に実行されたものだけを見つけます...
[myScrollView setContentOffset:CGPointMake(300,0) animated:YES]; //this one works
[myScrollView setContentOffset:CGPointMake(100,0) animated:YES]; //this one not
前もって感謝します!
最高、マーカス