首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iPhone-X -如何强制用户滑动两次主页指示器才能返回主页-屏幕

iPhone-X -如何强制用户滑动两次主页指示器才能返回主页-屏幕
EN

Stack Overflow用户
提问于 2017-11-17 17:36:41
回答 4查看 4.2K关注 0票数 12

我使用下面的代码来隐藏iPhone X上的home指示器,它在模拟器中工作得很好。

代码语言:javascript
复制
-(BOOL)prefersHomeIndicatorAutoHidden
{
    return YES;
}

但即使它是隐藏的,我仍然能够从底部向上滑动,我的游戏将进入主屏幕。

我见过一些游戏,用户必须向上滑动一次才能调出主页指示器,然后再次向上滑动才能进入主屏幕。

那么,如何使用Objective-C强制用户滑动两次主页指示器才能转到iOS 11的主屏幕呢?

这是全屏游戏所必需的。

EN

回答 4

Stack Overflow用户

发布于 2018-10-19 22:14:17

I had the same problem

PrefersHomeIndicatorAutoHidden必须返回NO,但还必须重写PreferredScreenEdgesDeferringSystemGestures并返回UIRectEdgeBottom

Swift 4.2

代码语言:javascript
复制
override var prefersHomeIndicatorAutoHidden: Bool {
  return false
}

override var preferredScreenEdgesDeferringSystemGestures: UIRectEdge {
  return UIRectEdge.bottom
}
票数 14
EN

Stack Overflow用户

发布于 2017-12-18 03:31:57

将以下代码添加到ViewController中为我解决了这个问题:

代码语言:javascript
复制
- (UIRectEdge)preferredScreenEdgesDeferringSystemGestures
{
    return UIRectEdgeBottom;
}

这使得Home指示器更加透明和停用,因此需要额外滑动才能离开游戏。

您还可以使用UIRectEdgeAll而不是UIRectEdgeBottom来延迟屏幕所有边缘上的系统手势。

票数 6
EN

Stack Overflow用户

发布于 2017-12-14 13:31:48

它是隐藏和延迟之间的选择,但不能两者都有。

代码语言:javascript
复制
-(BOOL)prefersHomeIndicatorAutoHidden
{
    // YES for hidden (but swipe activated)
    // NO for deferred (app gets priority gesture notification)
    return NO;  
}

在viewDidLoad中注册手势

代码语言:javascript
复制
UIScreenEdgePanGestureRecognizer *sePanGesture = [[UIScreenEdgePanGestureRecognizer alloc] initWithTarget:self action:@selector(handleGesture:)];
sePanGesture.edges = UIRectEdgeAll; 
// or just set the bottom if you prefer, top-right seems to behave well by default
[self.view addGestureRecognizer:sePanGesture]; 

并定义handleGesture,不需要在那里做任何事情就可以工作

代码语言:javascript
复制
- (void)handleGesture:(UIScreenEdgePanGestureRecognizer *)recognizer {
    // to get location where the first touch occurred from docs
    // CGPoint location = [recognizer locationInView:[recognizer.view superview]]; 

    NSLog(@"gestured");
}

应该是这样的

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47347403

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档