我在 iOS 8 中遇到了这个错误。当从底部手势滑动以显示控制中心时,滚动视图和其他具有自定义手势的视图都获得了触摸。我在屏幕底部附近有一些 UIButton,它们也将开始跟踪。这些问题都没有发生在 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 未激活。
当我的应用程序再次激活时,应用程序结束忽略交互事件并将 Windows 的色调模式恢复为自动。
希望这对您有所帮助。