代码改变世界

未调用preferredScreenEdgesDeferringSystemGestures和childViewControllerForScreenEdgesDeferringSystemGestures

2018-09-04 18:52  法子  阅读(1233)  评论(5编辑  收藏  举报

有一种原因会导致不调用重写的preferredScreenEdgesDeferringSystemGestures和childViewControllerForScreenEdgesDeferringSystemGestures函数。

就是新建了一个UIWindow,(默认isHidden = true),并设isHidden = false。

这时就会影响tabbarcontroller里重写的childViewControllerForScreenEdgesDeferringSystemGestures不被系统调用,它的viewcontrollers里的viewcontroller里面重写的preferredScreenEdgesDeferringSystemGestures也不被系统调用。

其结果就是,比如虽然重写了下面的函数,希望底部不优先响应系统边缘的屏幕手势

    override func preferredScreenEdgesDeferringSystemGestures() -> UIRectEdge {

        return .bottom

    }

 但是由于没被调用,底部的button按钮响应长按还是会延迟