我的UIAlertController
样式为ActionSheet
。
我已向其添加了cancel
操作。
由于某些原因,当用户点击ActionSheet
框之外时,警报就会被取消。
如何禁用此行为?我希望用户直接按下取消按钮。
答案 0 :(得分:0)
swift 4 / Xcode 11
您好。要禁用用户交互(例如:点击取消按钮以外的任何位置),请在alert函数中调用present方法并将其设置为完成闭包,如下面的代码所示。
present(alertController, animated: true) {
alertController.view.superview?.subviews[0].isUserInteractionEnabled = false
}
整个例子:
func alertMe() {
let alertController = UIAlertController(title: "Tapping Test", message: "User Interaction on the view is disabled", preferredStyle: .actionSheet)
let cancelAction = UIAlertAction(title: "cancel", style: UIAlertActionStyle.cancel) { UIAlertAction in
// do something/call someone/or nothing :)
NSLog("cancel Button is Pressed")
}
alertController.addAction(cancelAction)
present(alertController, animated: true){
alertController.view.superview?.subviews[0].isUserInteractionEnabled = false
}
}