从底部覆盖控制中心屏幕边缘平移?

时间:2014-08-01 08:56:28

标签: ios objective-c xcode uigesturerecognizer control-center

我想在显示屏的底部边缘使用UIScreenEdgePanGestureRecognizer。如果我将edges设置为UIRectEdgeLeftUIRectEdgeRight,但UIRectEdgeTopUIRectEdgeBottom不起作用,则识别器可以正常工作 - 它们被某些{{{}}覆盖1}}。

我实际上试图以与Facebook Paper设法相同的方式覆盖控制中心 - 认为屏幕边缘可能是他们的伎俩。纸张允许您从底部屏幕边缘滚动以拉出其菜单,并且根本不会弹出控制中心。这绝对是可能的,我只是想知道他们是如何做到的。

有什么想法吗?

3 个答案:

答案 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规则。我真的很喜欢这样。

以下是该流程的视频:

http://www.youtube.com/watch?v=A2CWvhxhGoY&feature=youtu.be

答案 2 :(得分:0)

如何使用UISwipeGestureRecognizer?