小编fil*_*ilo的帖子

在 iPhone X iOS 12 上从底部边缘向上滑动时阻止应用程序进入后台

在 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 …

xcode objective-c unity-game-engine ios12

3
推荐指数
1
解决办法
4773
查看次数

标签 统计

ios12 ×1

objective-c ×1

unity-game-engine ×1

xcode ×1