通話などの中断が発生し、iPhone や iPad のアプリの正常な動作が妨げられることがあります。
たとえば、UIScrollView インスタンスを 1 つ作成し、UIScrollView デリゲート メソッドを実装しました。
scrollViewWillBeginDragging メソッドにより、アプリ内のすべてのカスタム ボタンが非アクティブ化されました。次に、scrollViewDidEndDragging メソッドと scrollViewDidEndDecelerating メソッドがこれらのカスタム ボタンをアクティブにしました。つまり、ユーザーがスクロールしている間、すべてのカスタム ボタンがしばらく非アクティブになりました。
問題は、ユーザーがドラッグを開始して UIScrollView インスタンスを保持している間に、ホーム ボタンと電源ボタンを押してスクリーンショットを撮った場合、scrollViewDidEndDragging と scrollViewDidEndDecelerating のいずれも呼び出されなかったことです。そのため、アプリがめちゃくちゃになりました。
UIViewController に UIApplicationWillResignActiveNotification メソッドを実装しましたが、スクリーンショットを撮った後に呼び出されませんでした。
イベントの定期的な流れを妨げるような中断をどのようにキャッチできますか?
時々、中断のために touchesEnd と touchesCanceled も呼び出されませんでした。
ありがとうございました。