このバグは iOS 8 で発生しました。スクロール ビューとカスタム ジェスチャを使用するその他のビューの両方で、下のジェスチャからスワイプしてコントロール センターを表示するときに、タッチが渡されていました。画面の下部近くに、追跡を開始するいくつかの UIButtons がありました。これらの問題はいずれも、同じジェスチャーを使用してコントロール センターを表示する iOS 7 では発生していませんでした。
iOS 8 に対する私の修正は、アプリケーション デリゲートの applicationWillResignActive および applicationDidBecomeActive メソッドに次のコードを追加することでした。
- (void)applicationWillResignActive:(UIApplication *)application
{
[application beginIgnoringInteractionEvents];
[UIView animateWithDuration:0.25 animations:^{
for (UIWindow *aWindow in application.windows)
{
aWindow.tintAdjustmentMode = UIViewTintAdjustmentModeDimmed;
}
}];
}
- (void)applicationDidBecomeActive:(UIApplication *)application
{
[UIView animateWithDuration:0.25 animations:^{
for (UIWindow *aWindow in application.windows)
{
aWindow.tintAdjustmentMode = UIViewTintAdjustmentModeAutomatic;
}
} completion:^(BOOL finished) {
[application endIgnoringInteractionEvents];
}];
}
このコードは、基本的に、アプリがアクティブ状態を辞任するときに、アプリのすべての対話を遮断します。また、すべてのウィンドウでティント モードを淡色表示に設定することにしました。これは、ユーザーがツールバーの項目や、tintColor を使用する他の UI がアクティブではないことを理解できるようにするための独自の選択です。
アプリが再びアクティブになると、アプリは対話イベントの無視を終了し、ウィンドウの色合いモードを自動に戻します。
これがお役に立てば幸いです。