Swift弹出提示框
系统提供两种样式可供选择,一种是Alert,在一种是AlertSheet。两种弹出框的区别如图:
Alert样式 AlertSheet样式对于两种样式,系统提供了三种按钮,分别是Default、Cancle、Destructive
- Default:蓝色,对应上图确定按钮
- Cancle:蓝色加粗,对应上图取消按钮
- Destructive:红色,对应上图警告按钮
绑定按钮点击事件
-
默认情况下,即我们设置按钮处理事件为nil,当我们点击会使AlertView消失掉
例如:
alertContr.addAction(UIAlertAction(title: "", style: .Default, handler: nil)
-
自定义事件绑定,有两种方式:1.绑定定义好的方法,2.使用闭包。代码举例,为方便起见,我们使用一种特殊闭包,官方称之为TrailingClosure
alertContr.addAction(UIAlertAction(title: "取消", style: .Cancel){clickHandler in /*\**do what you want*/})
高级使用
Swift提供了更加更加高级的用法,我们不仅可以往UIAlertView上添加按钮,我们还可以添加TextField,实现如下图所示的功能
登录代码如下:
func loginAction(){
let alertContr = UIAlertController(title: "标题", message: "Swift 弹出框", preferredStyle: .Alert)
alertContr.addTextFieldWithConfigurationHandler {
(textField: UITextField!) -> Void in
textField.placeholder = "登录"
}
alertContr.addTextFieldWithConfigurationHandler {
(textField: UITextField!) -> Void in
textField.placeholder = "密码"
textField.secureTextEntry = true
}
alertContr.addAction(UIAlertAction(title: "确定", style: .Default){
clickHandler in
let loginName = alertContr.textFields!.first! as UITextField
let password = alertContr.textFields!.last! as UITextField
NSLog("LoginName:\(loginName.text!),Password:\(password.text!)")
})
alertContr.addAction(UIAlertAction(title: "取消", style: .Cancel){
clickHandler in
NSLog("点击了取消")
})
self.presentViewController(alertContr, animated: true, completion: nil)
}
网友评论