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日

相关文章

  • 关于python:如何删除目录?

    以下是关于“关于python:如何删除目录?”的完整攻略,包含两个示例。 如何删除目录? 在Python中,我们可以使用os模块中的rmdir()和shutil模块中的rmtree()函数来删除目录。以下是关于如何删除目录的详细攻略。 1. 使用os模块中的rmdir()函数 os模块中的rmdir()函数可以删除空目录。以下是使用os模块中的rmdir()…

    other 2023年5月9日
    00
  • ubuntu下安装和破解navicat的方法

    Ubuntu下安装和破解Navicat的方法 Navicat是一款综合性的数据库管理工具,适用于多种操作系统。本文将介绍如何在Ubuntu系统下安装和破解Navicat。 安装Navicat 下载Navicat安装包 首先访问Navicat官网下载适合你系统版本的Navicat安装包。 安装Navicat 下载完成后解压安装包并进入安装目录,终端输入以下命令…

    其他 2023年3月29日
    00
  • idea激活码(2019)

    Idea激活码(2019) 使用指南 很多人在使用IntelliJ IDEA时,由于没有购买正版的许可证,而需要使用激活码来继续使用该软件。但是,由于版权保护的原因,Idea官方并不赞成使用盗版或者未经授权的激活码。怎样找到可信的Idea激活码呢?本篇文章将给出一些引导,可以在不购买正版许可证的情况下帮助您继续使用Idea。 方式一:使用KMSpico KM…

    其他 2023年3月29日
    00
  • CentOS下rpm包与yum安装与卸载方法

    以下是CentOS下rpm包与yum安装与卸载方法的完整攻略: 安装rpm包 下载rpm包:使用wget或curl命令下载rpm包,例如: wget http://example.com/package.rpm 安装rpm包:使用rpm命令安装下载的rpm包,例如: rpm -ivh package.rpm 使用yum安装软件包 搜索软件包:使用yum命令搜…

    other 2023年10月14日
    00
  • C语言动态规划之背包问题详解

    C语言动态规划之背包问题详解 背包问题概述 背包问题是一个经典的问题,是计算机算法领域中常见的优化问题之一。所谓背包问题,就是给定一组物品和一个容量为C的背包,每个物品都有自己的重量和价值,要求在不超过背包容量的前提下,选择一些物品装进背包中,使得装进背包中的物品的总价值最大。 背包问题的本质就是在满足背包容量下,尽可能地利用有限资源进行价值最大化的选择问题…

    other 2023年6月27日
    00
  • 下载软件时获取真实地址的方法

    下载软件时获取真实地址的方法攻略 在下载软件时,有时候我们需要获取软件的真实地址,以确保下载的文件是可信和安全的。下面是一些获取真实地址的方法: 方法一:使用开发者官网 打开你要下载软件的开发者官网。 寻找软件的下载页面或者下载链接。 在下载页面或链接上右键点击,选择“复制链接地址”或类似选项。 将复制的链接地址粘贴到浏览器的地址栏中,然后按下回车键。 浏览…

    other 2023年8月4日
    00
  • 剑灵6月30日万物有灵版本预下载指南 预下载地址教程介绍

    剑灵6月30日万物有灵版本预下载指南 1. 简介 剑灵是一款热门的多人在线角色扮演游戏,而6月30日的万物有灵版本是一次重要的更新。为了避免更新当天服务器过载,官方提供了预下载的选项,让玩家在更新当天能够快速进入游戏。本指南将详细介绍预下载的步骤和预下载地址。 2. 预下载步骤 步骤一:访问官方网站 首先,打开你的浏览器,访问剑灵的官方网站。你可以在搜索引擎…

    other 2023年8月4日
    00
  • Nacos客户端配置中心缓存动态更新实现源码

    Nacos是一个分布式系统的服务发现、配置管理和动态 DNS 服务解决方案。其中,Nacos客户端配置中心缓存动态更新实现源码是Nacos中的一个重要功能,可以用于保证客户端和服务端之间的配置信息同步。下面是该功能的完整攻略: 1. 配置中心缓存动态更新的原理 配置中心缓存动态更新的核心原理是通过监听配置中心的变化,并且在客户端的缓存中更新配置。Nacos客…

    other 2023年6月27日
    00
合作推广
合作推广
分享本页
返回顶部