iOS学习——UIAlertController详解
在iOS开发中,弹窗是必不可少的一个组件。UIAlertController是iOS 8之后引入的一个更加强大和灵活的弹窗组件,取代了之前的UIAlertView和UIActionSheet。本文将详细介绍UIAlertController的用法和相关属性。
UIAlertController的类型
UIAlertController可以创建两种类型的弹窗:带有一个或多个按钮的警告框(UIAlertControllerStyleAlert),或者包含多个选项的操作表(UIAlertControllerStyleActionSheet)。
UIAlertControllerStyleAlert
UIAlertControllerStyleAlert使用较为广泛,一般用于提示用户发生的错误、需要用户确认的操作等。
示例代码:
let alert = UIAlertController(title: "警告", message: "您输入的内容有误!", preferredStyle: .alert)
let cancelAction = UIAlertAction(title: "取消", style: .cancel, handler: nil)
let confirmAction = UIAlertAction(title: "确定", style: .default, handler: { (action) in
//确认操作
})
alert.addAction(cancelAction)
alert.addAction(confirmAction)
self.present(alert, animated: true, completion: nil)
以上代码创建了一个标题为"警告",内容为"您输入的内容有误!"的警告框,并添加取消和确认两个按钮。当用户点击确认按钮时,触发闭包中的代码进行确认操作。
UIAlertControllerStyleAlert还有一个特殊的属性preferredAction,表示首选的操作按钮。如果设置了该属性,UIAlertController会自动将此按钮显示为加粗状态。
示例代码:
let alert = UIAlertController(title: "警告", message: "您将要删除该文件!", preferredStyle: .alert)
let cancelAction = UIAlertAction(title: "取消", style: .cancel, handler: nil)
let deleteAction = UIAlertAction(title: "删除", style: .destructive, handler: nil)
alert.addAction(cancelAction)
alert.addAction(deleteAction)
alert.preferredAction = deleteAction
self.present(alert, animated: true, completion: nil)
以上代码创建了一个标题为"警告",内容为"您将要删除该文件!"的警告框,并添加取消和删除两个按钮。设置preferredAction为删除按钮,使其成为首选操作按钮。当用户按下回车键时,UIAlertController会自动执行首选的操作。
UIAlertControllerStyleActionSheet
UIAlertControllerStyleActionSheet用于显示多个选项,一般用于带有多种操作的场景。
示例代码:
let alert = UIAlertController(title: nil, message: nil, preferredStyle: .actionSheet)
let cancelAction = UIAlertAction(title: "取消", style: .cancel, handler: nil)
let takePhotoAction = UIAlertAction(title: "拍照", style: .default) { (action) in
//拍照操作
}
let choosePhotoAction = UIAlertAction(title: "从相册选择", style: .default) { (action) in
//选择相片操作
}
alert.addAction(cancelAction)
alert.addAction(takePhotoAction)
alert.addAction(choosePhotoAction)
self.present(alert, animated: true, completion: nil)
以上代码展示了一个包含"拍照"、"从相册选择"和"取消"三个选项的操作表,分别触发不同的操作。
UIAlertController的属性
除了创建弹窗之外,UIAlertController还有一些属性可以调整弹窗的样式和行为。
title和message
title和message分别表示UIAlertController的标题和内容。两者都可为空。
示例代码:
let alert = UIAlertController(title: "提示", message: "您已成功购买", preferredStyle: .alert)
let confirmAction = UIAlertAction(title: "确定", style: .default, handler: nil)
alert.addAction(confirmAction)
self.present(alert, animated: true, completion: nil)
以上代码展示了一个标题为"提示",内容为"您已成功购买"的警告框。
addTextField
addTextField方法创建一个文本输入框,可以用于输入用户名、密码等信息。
示例代码:
let alert = UIAlertController(title: "登录", message: "请输入用户名和密码", preferredStyle: .alert)
alert.addTextField { (textField) in
textField.placeholder = "用户名"
}
alert.addTextField { (textField) in
textField.placeholder = "密码"
textField.isSecureTextEntry = true
}
let cancelAction = UIAlertAction(title: "取消", style: .cancel, handler: nil)
let loginAction = UIAlertAction(title: "登录", style: .default) { (action) in
let username = alert.textFields?[0].text
let password = alert.textFields?[1].text
//在这里填写登录操作的代码
}
alert.addAction(cancelAction)
alert.addAction(loginAction)
self.present(alert, animated: true, completion: nil)
以上代码演示了如何创建一个带有用户名和密码输入框的警告框,并在用户点击登录按钮时获取输入框中的值。
preferredStyle
preferredStyle属性表示UIAlertController的样式,取值为UIAlertControllerStyleAlert或UIAlertControllerStyleActionSheet。
示例代码:
let alert = UIAlertController(title: "警告", message: "您输入的内容有误!", preferredStyle: .alert)
let cancelAction = UIAlertAction(title: "取消", style: .cancel, handler: nil)
let confirmAction = UIAlertAction(title: "确定", style: .default, handler: { (action) in
//确认操作
})
alert.addAction(cancelAction)
alert.addAction(confirmAction)
self.present(alert, animated: true, completion: nil)
以上代码使用UIAlertControllerStyleAlert创建了一个警告框。
总结
本文介绍了UIAlertController的用法和常用属性,从而帮助开发者在iOS应用中使用弹窗组件。UIAlertController是一个强大和灵活的组件,可以满足多种弹窗需求,开发者可以根据自己的需要做出相应的调整。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:ios学习——uialertcontroller详解 - Python技术站