Alerts 和 Action Sheets
有两种方式来弹出和询问用户一些事情
-
Alerts
-
Action Sheets
Alerts
-
显示在屏幕中央
-
通常询问只有两个答案的问题(比如 yes/no ok/cancel)
-
会打断用户的注意,因此需要慎用
-
经常用于“异步”问题,比如连接重制,网络获取失败等
-
可以有一个或多个输入框,比如密码框
Action Sheets
在iPhone或iPod上通常是从屏幕底部滑出,在iPad上是一个popover
可以从bar button item 或中 view 展示
通常询问超过两个问题
actionSheetsAction Sheets 代码示例
// 创建弹窗控制器,第三个参数是弹窗样式
var alert = UIAlertController(title: "标题",
message: "内容",
preferredStyle: .actionSheet)
// 添加行为
alert.addAction(UIAlertAction(title: "行为", style: .default, handler: { (action) in
// 闭包
}))
/**
*actionSheet在iPad上通常使用popover
*1. 需要设置模态样式为popover
*2. 从那个地方弹出
*/
// 适配ipad
alert.modalPresentationStyle = .popover
let ppc = alert.popoverPresentationController
ppc?.barButtonItem = redeployBarButtonItem
// 显示
present(alert, animated: true, completion: nil)
Alerts代码示例
var alert = UIAlertController(title: "需要登陆", message: "请输入密码", preferredStyle: .alert)
alert.addAction(UIAlertAction(title: "取消", style: .destructive, handler: nil))
alert.addAction(UIAlertAction(title: "登陆", style: .default, handler: { (action) in
if let tf = alert.textFields?.first {
self.loginWithPassword(tf.text)
}
}))
// 添加输入框
alert.addTextField { (textField) in
textField.placeholder = "请输入密码"
}
present(alert, animated: true, completion: nil)
网友评论