美文网首页
Alerts 和 Action Sheets

Alerts 和 Action Sheets

作者: _我和你一样 | 来源:发表于2019-05-10 10:28 被阅读0次

    Alerts 和 Action Sheets

    有两种方式来弹出和询问用户一些事情

    • Alerts

    • Action Sheets

    Alerts

    • 显示在屏幕中央

    • 通常询问只有两个答案的问题(比如 yes/no ok/cancel)

    • 会打断用户的注意,因此需要慎用

    • 经常用于“异步”问题,比如连接重制,网络获取失败等

    • 可以有一个或多个输入框,比如密码框

    alert

    Action Sheets

    在iPhone或iPod上通常是从屏幕底部滑出,在iPad上是一个popover

    可以从bar button item 或中 view 展示

    通常询问超过两个问题

    actionSheets

    Action 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)
    

    相关文章

      网友评论

          本文标题:Alerts 和 Action Sheets

          本文链接:https://www.haomeiwen.com/subject/plyooqtx.html