美文网首页
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