作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要在用户触摸其边界之外的任何地方时关闭 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/
我是一名优秀的程序员,十分优秀!