在iOS 13中呈现全屏模式时是否可以使用滑动来关闭?

时间:2019-09-05 10:42:39

标签: swift presentmodalviewcontroller ios13

在iOS 13中使用新的默认卡模式演示文稿时,有一个不错的功能可以滑动以关闭。展示经典的.fullscreen模式时是否可以使用此功能?

我检查了全屏显示时isModalInPresentation是否为假。

有什么想法吗?

2 个答案:

答案 0 :(得分:2)

如今年的wwdc中所述,似乎只有在模态显示为表格的情况下,滑动才能退出,才能使用

  

现在,你们所有人都需要做什么才能支持“撤消”?一般来说,什么都没有。如果您以表格形式展示某些东西,则可以免费将其拉下。

这很有意义。当您将其显示为表格时,UI使其看起来像您可以向下滑动模式。当您以全屏显示时,对于用户来说,应该向下滑动页面以将其关闭是不直观的。在这种情况下,我宁愿使用按钮。

答案 1 :(得分:1)

正如@pepsy所说,不应通过滑动来消除全屏视图。但是,如果您仍然想尝试一下,这就是我开始的事情

注意:拖动时父控制器不可见有点毛病。

我在视图中添加了UIPanGestureRecognizer,以模拟滑动以消除行为。我还有一个“关闭(X)”按钮,因为滑动手势不像工作表那样直观。

@IBAction func panGestureRecognizerHandler(_ sender: UIPanGestureRecognizer) {

    let translationY = sender.translation(in: sender.view!).y

    switch sender.state {
    case .began:
        break
    case .changed:
        view.transform = CGAffineTransform(translationX: 0, y: translationY)
    case .ended, .cancelled:
        if translationY > 160 {
            dismiss(animated: true, completion: nil)
        } else {
            UIView.animate(withDuration: 0.2, animations: {
                self.view.transform = CGAffineTransform(translationX: 0, y: 0)
            })
        }
    case .failed, .possible:
        break
    @unknown default:
        break
    }
}