【问题标题】:Exit scene when clicking outside of modal view在模态视图之外单击时退出场景
【发布时间】:2016-03-18 12:02:52
【问题描述】:

在选择模态视图之前尝试退出模态视图以返回上一个场景。下面附上示例:

原来我使用了github上的一些代码,通过按钮退出并返回上一个场景。

如何选择灰色部分退出?

【问题讨论】:

    标签: ios swift modal-view


    【解决方案1】:

    将 UITapGestureRecognizer 添加到灰色视图并将其设置为关闭视图控制器的方法。例如:

    let tap = UITapGestureRecognizer(target: self, action: "close:")
    grayView.addGestureRecognizer(tap)
    

    例如,把它放在你的 viewDidLoad() 中。 然后在视图控制器的全局范围内做出响应点击的动作:

    func close(tap: UITapGestureRecognizer) {
        self.presentingViewController?.dismissViewControllerAnimated(true, completion: nil)
    }
    

    如果您希望视图表现不同,您可以尝试以下操作:

    func close(tap: UITapGestureRecognizer) {
        let view = tap.view!
        UIView.animateWithDuration(0.5, animations: { () -> Void in
            view.backgroundColor = UIColor.clearColor()
            }) { (success) -> Void in
                self.presentingViewController?.dismissViewControllerAnimated(true, completion: nil)
        }
    }
    

    您可能需要尝试动画的持续时间才能使其正确。

    【讨论】:

    • 这很好用,但是你知道如何不让它随着模态视图向下滑动吗?现在,灰色视图就像是模态视图的一部分。我希望模态视图向下滑动,然后灰色视图单独消失。
    • 为评论添加了可能的解决方案。如果它解决了您的原始问题,请接受答案。
    • 不幸的是不能说它有效。尝试移动视图以使其与灰色视图中的模型视图分开,但似乎都没有成功。顺便说一句,您如何接受答案?
    • 嗯好的。如果没有看到您的代码或页面的设置方式,很难给出准确的答案。您可以通过按答案左侧的灰色复选标记来接受答案:)
    • 无论如何我都不能说我在 swift 中做了很多动画,所以我可能会回到它。得到了我的主要答案,所以无论如何都要感谢:)
    猜你喜欢
    • 2021-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-27
    • 2011-08-26
    相关资源
    最近更新 更多