在 iPhone X iOS 12 上从屏幕底部边缘滑动时,我的游戏会进入后台模式。
根据Apple 文档,覆盖preferredScreenEdgesDeferringSystemGestures和调用setNeedsUpdateOfScreenEdgesDeferringSystemGestures应该会阻止应用程序进入后台,但这在 iOS 12 上不起作用。
我正在使用 Unity3D,编辑器具有“延迟系统手势边缘”选项,该选项是按照苹果文档实现的,但也不起作用。
我正在 Xcode 10 中编译该项目。
其他人有这个问题吗?你有解决办法吗?
PS:我正在一个空的单视图iOS项目中对此进行测试,唯一添加的代码如下:
- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear: animated];
[self setNeedsUpdateOfHomeIndicatorAutoHidden];
[self setNeedsUpdateOfScreenEdgesDeferringSystemGestures];
}
- (UIRectEdge)preferredScreenEdgesDeferringSystemGestures
{
return UIRectEdgeAll;
}
- (BOOL)prefersHomeIndicatorAutoHidden
{
return YES;
}
Run Code Online (Sandbox Code Playgroud)
更新:事实证明,如果我使用快速实现,它就可以工作。太糟糕了,我无法对 Unity3D 2017 生成的项目执行此操作。
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
if #available(iOS 11.0, *){
setNeedsUpdateOfScreenEdgesDeferringSystemGestures()
}
}
override var preferredScreenEdgesDeferringSystemGestures: UIRectEdge{
return [.all];
}
}
Run Code Online (Sandbox Code Playgroud)
新更新:在 Unity …