1

我想UIScreenEdgePanGestureRecognizer在显示器的底部边缘使用 a 。如果我将其设置edgesUIRectEdgeLeftor ,识别器将完美运行UIRectEdgeRight,但UIRectEdgeToporUIRectEdgeBottom不起作用 - 它们已被某些UISystemGestureGateGestureRecognizer.

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

有什么想法吗?

4

3 回答 3

1

我不知道我做错了什么,但因为 Facebook 应用程序隐藏了状态栏,它们发生的行为与 iOS 中的所有全屏应用程序相同。

我已经对其进行了多次测试 -Control Center不会弹出,但弹出它的小箭头 - 会。

所以你的假设是错误的——Facebook没有禁用 Control Center,也没有覆盖任何行为。只是在整个应用程序中隐藏了状态栏。

只需将键值设置View controller-based status bar appearanceNOin plist。然后隐藏它。

这是要走的路。

顺便说一句,当您向下滑动应用程序视图以显示您的个人资料并出现状态栏时 - 尝试从屏幕的最底部边缘向上滑动。相信我,你会完全惊讶。

这里没有魔法,什么都没有。Facebook 很大,但他们无法违反 iOS 规则。老实说,我希望它是那样的。

这是该过程的视频:

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

于 2014-08-04T09:36:48.660 回答
1

有一个技巧可以防止意外启动控制中心。只需禁用状态栏。然后在刷卡时,将提示用户是否必须启动控制中心。

它不会在一次滑动中启动。相反,第一次滑动时会出现一个箭头,用户需要单击并拖动箭头以启动控制中心,从而防止意外启动。使用此代码禁用状态栏。

我不知道它是否适用于您的情况,并且您的手势识别器会被触发,但我会试一试。

您可以使用此委托方法禁用状态栏:

- (BOOL) prefersStatusBarHidden
{
    return YES;
} 

希望能帮助到你。

于 2014-08-01T09:15:01.623 回答
0

改用 UISwipeGestureRecognizer 怎么样?

于 2014-08-07T12:28:09.280 回答