ios学习——uialertcontroller详解

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技术站

(0)
上一篇 2023年3月29日
下一篇 2023年3月29日

相关文章

  • flex实例(阮一峰)

    以下是关于Flex实例的完整攻略: 什么是Flex? Flex是一种CSS布局模式,可以使元素在容器中自动对齐、分配空间和调整大小。它是一种响应式布局,可以适应不同的屏幕大小和设备类型。 如何使用Flex? 以下是使用Flex的基本步骤: 将display属性设置为flex,将元素转换为Flex容器。 使用flex-direction属性设置Flex容器中的…

    other 2023年5月6日
    00
  • Spring使用@Autowired为抽象父类注入依赖代码实例

    下面我将详细讲解如何使用@Autowired为抽象父类注入依赖: 前置条件 了解Java Spring框架基本概念以及注解的使用; 了解 Java代码中的抽象类的概念,以及抽象类在Spring框架中的作用。 解决问题 在使用Spring框架进行项目开发时,我们常常会使用抽象类来统一管理业务逻辑的基本流程,但在实现抽象类时,我们需要将某些依赖注入到其中,而这些…

    other 2023年6月27日
    00
  • vue element el-form 多级嵌套验证的实现示例

    Vue Element el-form 多级嵌套验证的实现示例攻略 在Vue和Element UI中,我们可以使用el-form组件来实现表单验证。当我们需要处理多级嵌套的表单验证时,可以按照以下步骤进行实现。 步骤一:创建表单结构 首先,我们需要创建一个包含多级嵌套的表单结构。例如,我们创建一个包含两个级别的表单,其中第一级包含一个输入框,第二级包含一个选…

    other 2023年7月28日
    00
  • 基于JavaScript实现智能右键菜单

    下面是基于JavaScript实现智能右键菜单的完整攻略。 1. 背景介绍 智能右键菜单是指当用户在浏览器中使用右键单击时,会弹出根据不同情况自动生成的菜单。这种菜单能够自动识别网页中的选中文本、链接、图片等内容,并提供相应的操作选项。实现这样的功能可以大大提高用户的使用体验。本教程将介绍如何通过JavaScript来实现智能右键菜单。 2. 实现步骤 2.…

    other 2023年6月27日
    00
  • 关于spring循环依赖问题及解决方案

    关于Spring循环依赖问题及解决方案 什么是循环依赖? 当两个或多个Bean相互依赖时,我们称之为循环依赖。在Spring中,循环依赖通常会导致一个Bean无法正确创建,如果不加以处理,这将成为Spring框架中的常见错误。 Spring如何解决循环依赖问题? Spring框架提供了三种解决方案,可以帮助我们解决循环依赖问题: 方案一:通过构造函数进行注入…

    other 2023年6月26日
    00
  • VC++中HTControl控件类之CHTRichEdit富文本编辑控件实例

    VC++中HTControl控件类之CHTRichEdit富文本编辑控件实例 CHTRichEdit是VC++中的一个HTControl控件类,用于实现富文本编辑功能。下面是使用这个控件的详细攻略: 第一步:添加控件 在使用CHTRichEdit控件前,我们需要先将它添加到窗口中。具体操作如下: 在Resource View中找到想要添加控件的对话框或窗口,…

    other 2023年6月26日
    00
  • 清洁jenkins工作区

    Jenkins是一个流行的持续集成和持续交付工具,它可以帮助我们自动化构建、测试和部署软件。在使用Jenkins时,我们需要定期清理工作区,以避免占用过多的磁盘空间和混淆旧的构结果。本攻略将介绍如何清洁Jenkins工作区,并提供两个示例。 步骤一:使用Jenkins插件清洁作区 Jenkins提供了许多插件,可以帮助我们清洁工作区。以下是一个示例,展示了如…

    other 2023年5月9日
    00
  • gradle对应camke版本

    Gradle对应CMake版本 Gradle是一款流行的构建自动化工具,而CMake则是用于管理C/C++项目的工具。在开发过程中,我们常常需要使用Gradle来构建项目,同时也需要使用CMake来管理项目。但是,不同的版本之间可能存在一些兼容性问题。因此,在使用Gradle和CMake时,我们需要了解它们之间的版本对应关系。 Gradle和CMake的版本…

    其他 2023年3月28日
    00
合作推广
合作推广
分享本页
返回顶部