如何覆盖iOS 11上的“从顶部滑动”手势?

问题描述 投票:2回答:1

我正在尝试在我的iOS应用中覆盖“从屏幕顶部向下滑动”手势(打开通知中心的手势)。

据我所知,正确的方法是在视图控制器上重写preferredScreenEdgesDeferringSystemGestures()方法,并使用UIScreenEdgePanGestureRecognizer处理手势。

在我的情况下,默认系统手势已成功阻止(通知中心未打开,只有灰色指示器出现在屏幕顶部),但手势识别器未触发。这是视图控制器的代码:

class ViewController: UIViewController {

    override func preferredScreenEdgesDeferringSystemGestures() -> UIRectEdge {
        return .top
    }

    override func viewDidLoad() {
        super.viewDidLoad()

        let gestureRecognizer = UIScreenEdgePanGestureRecognizer(target: self, action: #selector(swipeFromTop))
        gestureRecognizer.edges = .top
        view.addGestureRecognizer(gestureRecognizer)
    }

    @objc func swipeFromTop() {
        print("swipe from top") // not printed
    }
}

我为“从屏幕底部向上滑动”手势尝试了相同的操作,并且按预期方式工作(未打开控制中心,并且触发了手势识别器。]

我正在运行iOS 11.4的iPhone 7上进行测试。

我正在尝试在我的iOS应用中覆盖“从屏幕顶部向下滑动”手势(打开通知中心的手势)。据我了解,正确的方法是...

ios uigesturerecognizer swipe
1个回答
0
投票

您还需要通过将prefersStatusBarHidden设置为返回prefersStatusBarHidden并将true设置为isNavigationBarHidden,来隐藏状态栏和导航栏。

© www.soinside.com 2019 - 2024. All rights reserved.