gpt4 book ai didi

ios - 如何在触摸 UIAlertView 之外的任何地方时关闭它?

转载 作者:行者123 更新时间:2023-11-28 12:50:50 26 4
gpt4 key购买 nike

我需要在用户触摸其边界之外的任何地方时关闭 AlertView。

我知道你要打电话

alert.dismissViewControllerAnimated(true, completion: nil)

要关闭 AlertView,但只有当用户触摸除了作为 View 一部分的两个按钮之一之外的任何其他地方时,我该如何做到这一点?

这是我根据史蒂夫的建议得到的代码:

presentViewController(alert, animated: true, completion: nil)
//Add gesture recognizer for alert ViewController when adding an event
let tapGesture = UITapGestureRecognizer(target: self, action: "alertClose:")
view.addGestureRecognizer(tapGesture)
//dismiss the alert if the user click anywhere except the buttons
func alertClose(gesture: UITapGestureRecognizer) {
alert.dismissViewControllerAnimated(true, completion: nil)
}

最佳答案

当您呈现警报时,使用这样的完成处理程序调用它:

self.presentViewController(alert, animated: true, completion:{
alert.view.superview?.userInteractionEnabled = true
alert.view.superview?.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(self.alertClose(_:))))
})

注意: Pre Swift 2.2 替换

#selector(self.alertClose(_:))

Selector("alertClose")

然后创建您的警报关闭函数:

func alertClose(gesture: UITapGestureRecognizer) {
self.dismissViewControllerAnimated(true, completion: nil)
}

我在 iPhone 6 上用 swift 2.2 测试过

关于ios - 如何在触摸 UIAlertView 之外的任何地方时关闭它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36586361/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com