我想在显示屏的底部边缘使用UIScreenEdgePanGestureRecognizer
。如果我将edges
设置为UIRectEdgeLeft
或UIRectEdgeRight
,但UIRectEdgeTop
或UIRectEdgeBottom
不起作用,则识别器可以正常工作 - 它们被某些{{{}}覆盖1}}。
我实际上试图以与Facebook Paper设法相同的方式覆盖控制中心 - 认为屏幕边缘可能是他们的伎俩。纸张允许您从底部屏幕边缘滚动以拉出其菜单,并且根本不会弹出控制中心。这绝对是可能的,我只是想知道他们是如何做到的。
有什么想法吗?
答案 0 :(得分:1)
有一个技巧可以防止意外启动控制中心。只需禁用状态栏即可。然后在滑动时,将提示用户是否必须启动控制中心。
它不会在一次刷卡中启动。而是在第一次滑动时出现箭头,用户需要单击并拖动箭头以启动控制中心,从而防止意外启动。使用此代码禁用状态栏。
我不知道它是否适用于你的情况,你的手势识别器会被解雇,但我会尝试一下。
您可以使用此委托方法禁用状态栏:
- (BOOL) prefersStatusBarHidden
{
return YES;
}
希望它有所帮助。
答案 1 :(得分:1)
我不知道自己做错了什么,但因为Facebook应用程序隐藏了状态栏,所以它们的行为与iOS中的所有全屏应用程序相同。
我已经多次测试过了 - Control Center
没有弹出,但是用它来点亮的小箭头确实如此。
所以你的假设是错误的 - Facebook 没有禁用 Control Center
,也没有覆盖任何行为。只是将statusBar隐藏在整个应用程序中。
只需在View controller-based status bar appearance
中将键值NO
设置为plist
即可。然后隐藏它。
这是要走的路。
顺便说一句,当您向下滑动应用视图以显示您的个人资料并显示状态栏时 - 尝试从屏幕的最下边缘向上滑动。相信我,你会感到非常惊讶。
这里没有魔法,没有什么。 Facebook很大但他们不能违反iOS规则。我真的很喜欢这样。
以下是该流程的视频:
答案 2 :(得分:0)
如何使用UISwipeGestureRecognizer?