首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在Swift中保存按钮图像状态?

在Swift中保存按钮图像状态可以通过以下步骤实现:

  1. 首先,你需要定义一个变量来保存按钮的状态。可以使用布尔类型的变量来表示按钮的选中状态,例如:
代码语言:txt
复制
var isButtonSelected = false
  1. 接下来,在按钮的点击事件中,你可以根据按钮的当前状态来改变按钮的图像,并更新保存按钮状态的变量。例如:
代码语言:txt
复制
@IBAction func buttonTapped(_ sender: UIButton) {
    if isButtonSelected {
        sender.setImage(UIImage(named: "unselectedImage"), for: .normal)
        isButtonSelected = false
    } else {
        sender.setImage(UIImage(named: "selectedImage"), for: .normal)
        isButtonSelected = true
    }
}

在上述代码中,当按钮被点击时,根据isButtonSelected变量的值来设置按钮的图像,并更新isButtonSelected的值。

  1. 如果你希望在应用程序重新启动后仍然能够保持按钮的状态,你可以使用UserDefaults来保存按钮状态。在应用程序退出时,将按钮状态保存到UserDefaults中,在应用程序启动时,从UserDefaults中读取按钮状态并设置按钮的图像。例如:
代码语言:txt
复制
// 保存按钮状态
UserDefaults.standard.set(isButtonSelected, forKey: "buttonSelected")

// 读取按钮状态
if let buttonSelected = UserDefaults.standard.value(forKey: "buttonSelected") as? Bool {
    isButtonSelected = buttonSelected
    if isButtonSelected {
        button.setImage(UIImage(named: "selectedImage"), for: .normal)
    } else {
        button.setImage(UIImage(named: "unselectedImage"), for: .normal)
    }
}

在上述代码中,通过UserDefaults.standard.set(_:forKey:)方法将按钮状态保存到UserDefaults中,并通过UserDefaults.standard.value(forKey:)方法从UserDefaults中读取按钮状态。

这样,无论应用程序是否重新启动,按钮的状态都会被正确地保存和恢复。

关于Swift的更多信息,你可以参考腾讯云的产品介绍链接:Swift开发语言

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

TensorFlow 智能移动项目:1~5

缺少的另一件事是缺少有关如何在基于 Swift 的 iOS 应用中使用 TensorFlow 的文档; 示例 TensorFlow iOS 应用都在 Objective-C ,它们调用了 TensorFlow...在下一章,我们将学习如何变得更聪明,如何识别图片中所有有趣的对象以及如何在智能手机上随时随地对其进行定位。 三、检测物体及其位置 对象检测比上一章讨论的图像分类迈出了一步。...在下一章,这是我们与计算机视觉相关的第三项任务,我们将仔细研究如何在 Python 和 TensorFlow 训练和构建有趣的深度学习模型,以及如何在 iOS 和 Android 应用中使用它来添加令人赞叹的图像艺术风格...我们首先声明三个数组,并为其分配适当的内存:intValues数组保存测试图像的像素值,每个像素值代表 32 位 ARGB(Alpha,红,绿,蓝色)值; floatValues数组模型所预期的那样分别保存每个像素的红色...在 Android 设备或虚拟设备上运行该应用,首先将看到一个带有按钮的测试图像,点击该按钮,几秒钟后,您将看到样式迁移的图像,如图 4.4 所示: [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

4.5K20

用这些 iOS 技巧让你的 APP 性能更佳

为了实现状态保存和恢复,我们可以在 AppDelegate.swift 实现下面两个方法: func application(_ application: UIApplication, shouldSaveApplicationState...// ViewController.swift self.restorationIdentifier = "MainVC" 在状态保留期间,所有被分配了恢复标识符的视图控制器或视图都会将其状态保存到磁盘...通过在Xcode中点击 ⏹ 按钮,停止程序运行。 再次启动应用程序并检查状态是否已成功还原。 由于本节仅涵盖了状态保存和恢复的基础知识,因此我推荐 Apple Inc. 上的以下文章。...要删除图像的 Alpha 通道,可以使用预览应用程序复制图像(Shift⇧ + Cmd⌘+ S),并在保存时取消选中Alpha复选框。 ?...保存图像时,取消选中 Alpha 复选框以取消 Alpha 通道。

3.2K30
  • Apple的Core ML3简介——为iPhone构建深度学习模型(附代码)

    这些框架允许我们创建端到端管道来执行图像处理和文本处理等。 如果你想执行图像分析任务,人脸或地标检测、文本检测、条形码识别、图像配准和一般特征跟踪,那么视觉就是你的选择。 ?...点击左上角的播放按钮,模拟器就会运行。 你看到了什么? ? 目前,我们的应用程序还做不了什么。它只显示一个图像和一个按钮来选择其他图像-让我们做得更好!...在项目导航窗格,选择ViewController.swift。这个文件包含了很多控制我们应用程序功能的代码。...我鼓励你进一步探索和尝试最新的模型,BERT,并创建更有趣的应用程序。...如果想选择其他模型的话,你可以尝试在我们这里开发的同一个应用程序上使用SqueezeNet和MobileNet,看看不同的模型是如何在相同的图像上运行的。

    2.1K20

    架构之路 (五) —— VIPER架构模式(一)

    开始 首先看下主要内容: 在本教程,您将了解如何在SwiftUI和Combine中使用VIPER体系结构模式,同时构建一个允许用户创建公路旅行的iOS应用程序,来自翻译。...在Data Sources组,有用于保存或加载数据的辅助函数。 如果您喜欢在WaypointModule组查看前面的内容。它有一个Waypoint编辑屏幕的VIPER实现。...它包含在starter,因此您可以在本教程结束时完成应用程序。 这个示例使用的是Pixabay,这是一个获得许可的照片共享站点。要将图像拉入应用程序,您需要创建一个免费帐户并获得一个API密钥。...在命令式UI范例——换句话说,在UIKit——路由router将负责显示视图控制器或激活segue。 SwiftUI将所有目标视图声明为当前视图的一部分,并根据视图状态显示它们。...导航栏修饰符使用presenter发布的tripName来定义标题,因此当用户键入时,它就会更新,而保存按钮则会保存任何更改。 构建并运行,现在,您可以编辑trip标题。

    17.5K10

    应用程序内购买教程:入门

    通过允许用户购买或解锁内容或功能,了解如何在此应用内购买教程增加应用收益。 ?...如果您删除并重新安装该应用程序,“ 还原”按钮将恢复以前购买的任何RazeFaces。 前往Xcode快速查看代码。主视图控制器位于MasterViewController.swift。...非消耗品:您购买一次的东西,并期望具有永久性,额外的水平和可解锁的内容。本教程的RazeFace插图属于此类别。 非续订订阅:在固定时间段内可用的内容。...为显示名称和描述输入“Swift Shopping” 。单击保存。大!您已经创建了第一个IAP产品。 ? 本地化 注意:App Store Connect可能会抱怨您缺少IAP的元数据。...(productIdentifier) 在本地保存购买状态可以减少每次应用启动时向Apple服务器请求此类数据的需求。

    5.5K20

    使用Codable归档Swift对象

    我们将在未来的项目中更多地研究Codable,但是目前我们的需求很简单:我们想要归档一个自定义类型,以便可以将其放入UserDefaults,然后在从UserDefaults返回时将其取消存档。...,我们可以创建一个将用户存档的按钮,并将其保存到UserDefaults,如下所示: Button("Save User") { let encoder = JSONEncoder()...它旨在存储您可以想到的任何类型的数据,例如字符串,图像,zip文件等。不过,在这里,我们只关心它是可以直接写入UserDefaults的数据类型之一。...这使我们进入了项目概述的末尾,因此继续进行,将您的项目重置为其初始状态,以便进行构建。...译自 Archiving Swift objects with Codable 相关内容可以参考:Swift:缓存Codable数据

    2.1K30

    SpriteKit简介-创建您的第一个iPhone平台游戏

    在本节,您将学习如何使用SpriteKit创建自己的平台游戏。您将学习如何实现所有基本游戏功能,玩家移动,玩家跳跃,相机工作,动画等。 你正在建设什么 这是您将要构建的iPhone平台游戏。...更少的代码,更多的图像! ? 为什么要使用SpriteKit? SpriteKit易于学习,因为它是一个设计良好的框架,如果您有使用Swift的经验,它会更容易。...接下来,我们需要选择保存项目的位置,在我们的示例,我们将其保存在桌面上,单击“ 创建”。恭喜!你创造了你的第一个游戏。 运行模拟器 让我们运行模拟器以确保我们的项目正常运行。...为了在我们的Xcode没有太多面板的情况下创建一个更干净的UI,项目让我们关闭导航器面板,点击Xcode UI右上角的第三个按钮,从右到左依次计算。...您可能已经注意到,您已经学到了很多东西,比如如何在Xcode创建第一个项目,导入资源,设置场景,将一些物理属性应用于节点以及了解Z位置。

    3.5K30

    使用 Codable 归档 Swift 对象

    UserDefaults非常适合存储简单的设置,例如整数和布尔值,但是当涉及复杂数据时——例如自定义Swift类型——我们需要做更多的工作。...我们将在未来的项目中更多地研究Codable,但是目前我们的需求很简单:我们想要归档一个自定义类型,以便可以将其放入UserDefaults,然后在从UserDefaults返回时将其取消存档。...,我们可以创建一个将用户存档的按钮,并将其保存到UserDefaults,如下所示: Button("Save User") { let encoder = JSONEncoder()...它旨在存储您可以想到的任何类型的数据,例如字符串,图像,zip文件等。不过,在这里,我们只关心它是可以直接写入UserDefaults的数据类型之一。...这使我们进入了项目概述的末尾,因此继续进行,将您的项目重置为其初始状态,以便进行构建。

    1.2K20

    100个iOS开发设计程序员面试题汇总,你将如何作答?

    能否描述一下如何在应用中使用ApplePay? ·请解释一下iOS应用沙盒机制。 ·VoiceOver是什么?请举例解释一下iOS的辅助功能(Accessibility)。开发者如何使用这些功能?...·按钮和其他控制方式对哪些操作做出回应? ·AppDelegate扮演着什么样的角色? ·请解释一下NSUserDefaults。就你而言,你会如何在磁盘对数组对象进行序列化?...iOS的~属于什么目录? ·AirPlay是如何运行的?换做是你,你会如何通过编程提高应用的实用性以及演示效果? ·传感器,IO以及WiFi、拨号等连接方式如何在iOS平台上运作?它们有何利用价值?...在Swift,什么情况下能使用NSError,什么情况下不能? ·请说明如何使用Instancetype及其重要性。 ·在Swift,什么时候该用let,什么时候该用var?...·iOSUI的图像储存类型是什么? ·请描述一下Storyboard和标准NIB文件的差别。 ·设备状态栏(DeviceStatusBar)是什么?高度如何?是否透明?

    1.4K40

    iOS程序员面试,绝对会遇到这些问题!

    能否描述一下如何在应用中使用Apple Pay? 请解释一下iOS应用沙盒机制。 VoiceOver是什么?请举例解释一下iOS的辅助功能(Accessibility)。开发者如何使用这些功能?...按钮和其他控制方式对哪些操作做出回应? AppDelegate扮演着什么样的角色? 请解释一下NSUserDefaults。就你而言,你会如何在磁盘对数组对象进行序列化?...iOS的~属于什么目录? AirPlay是如何运行的?换做是你,你会如何通过编程提高应用的实用性以及演示效果? 传感器,IO以及WiFi、拨号等连接方式如何在iOS平台上运作?它们有何利用价值?...在Swift,什么情况下能使用NSError ,什么情况下不能? 请说明如何使用Instancetype及其重要性。 在Swift,什么时候该用let,什么时候该用var?...iOS UI的图像储存类型是什么? 请描述一下Storyboard和标准NIB文件的差别。 设备状态栏(Device Status Bar)是什么?高度如何?是否透明?

    1.4K20

    六个方向关于iOS100个面试题,你都会了吗?

    能否描述一下如何在应用中使用Apple Pay? 请解释一下iOS应用沙盒机制。 VoiceOver是什么?请举例解释一下iOS的辅助功能(Accessibility)。开发者如何使用这些功能?...按钮和其他控制方式对哪些操作做出回应? AppDelegate扮演着什么样的角色? 请解释一下NSUserDefaults。就你而言,你会如何在磁盘对数组对象进行序列化?...iOS的~属于什么目录? AirPlay是如何运行的?换做是你,你会如何通过编程提高应用的实用性以及演示效果? 传感器,IO以及WiFi、拨号等连接方式如何在iOS平台上运作?它们有何利用价值?...在Swift,什么情况下能使用NSError ,什么情况下不能? 请说明如何使用Instancetype及其重要性。 在Swift,什么时候该用let,什么时候该用var?...iOS UI的图像储存类型是什么? 请描述一下Storyboard和标准NIB文件的差别。 设备状态栏(Device Status Bar)是什么?高度如何?是否透明?

    3.6K50

    【干货】手把手教你用苹果Core ML和Swift开发人脸目标识别APP

    校验文件是一个二进制文件,它包含了训练过程TensorFlow模型在一些特殊点的状态。下载并解压缩校验文件后,您会看到它包含以下三个文件: ?...Swift客户端将图像上传到云存储,这会触发Firebase,在Node.js中发出预测请求,并将生成的预测图像和数据保存到云存储和Firestore。...首先,在我的Swift客户端,我添加了一个按钮,供用户访问设备照片库。用户选择照片后,会自动将图像上载到云端存储: ? 接下来,我编写了上传到我的项目的云存储触发的Firebase数据库。...将带有新框的图像保存到云存储,然后将图像的文件路径写入Cloud Firestore,以便在iOS应用程序读取路径并下载新图像(使用矩形): ? ?...最后,在我的iOS应用程序,可以监听图像Firestore路径的更新。如果检测到,我会下载图像,并与检测分数一起显示在应用程序。这个函数将替换上面第一个Swift代码片段的注释: ?

    14.8K60

    使用Postern实现Android设备的全局代理优劣势分析

    我们可以通过代码在关键操作处记录事件,如按钮点击、页面浏览等。  b.用户属性收集  用户属性收集是了解用户特征的重要手段。我们可以收集用户的基本信息,年龄、性别、地域等,以便进行用户画像分析。  ...c.页面访问统计  页面访问统计有助于了解用户在应用的行为路径。我们可以记录用户访问的页面及停留时间,以便分析用户兴趣和需求。  ...c.自定义数据采集方案  如果原生API和第三方SDK无法满足需求,我们还可以自定义数据采集方案,通过网络请求将数据发送至服务器等。  ...代码示例:在iOS应用实现数据采集  a.事件追踪示例  ```swift  import FirebaseAnalytics  //记录按钮点击事件  Analytics.logEvent("button_click...现在您已经了解了如何在iOS设备上进行高效数据采集。希望您在实际应用能够充分利用数据采集技术,为您的项目带来更多的价值。

    27040

    你用 iPhone 打王者农药,有人却用它来训练神经网络...

    项目地址:https://github.com/JacopoMangiavacchi/MNIST-CoreML-Training MNIST 数据集 在这篇文章,作者介绍了如何使用 MNIST 数据集部署一个图像分类模型...这篇文章主要着眼于如何在 iOS 设备上直接为 MNIST 数据集构建和训练一个 LeNet CNN 模型。...接下来,研究者将把它与基于著名的 ML 框架( TensorFlow)的经典「Python」实现方法进行比较。...在 Swift 为 Core ML 的训练准备数据 在讨论如何在 Core ML 创建及训练 LeNet CNN 网络之前,我们可以先看一下如何准备 MNIST 训练数据,以将其正确地 batch...在下列 Swift 代码,训练数据的 batch 是专门为 MNIST 数据集准备的,只需将每个图像的「像素」值从 0 到 255 的初始范围归一化至 0 到 1 之间的「可理解」范围即可。 ?

    2.6K20

    窥探Swift编程之别样的HelloWorld

    从今天就开始陆陆续续的发布一些有关Swift语言的东西,虽然目前在公司项目开发Objective-C还是iOS开发的主力军,但是在不久的将来Swift将会成为iOS开发的新生宠儿。...所以在在Xcode6.0+版本的Playground上玩一玩Swift还是很有必要的。在接下来发表的博客主要是总结一下自己在翻译《Swift编程入门经典》(清华大学出版社出版)这本书所学到的东西。...3.键入ProductName :SwiftDemo,Organiztion Name, Organization identifier一般为你所在公司域名倒序com.cnblogs.lizelu,...下面就是我们创建好的工程,Swift语言文件的后缀名是swift,它不在像Objective-C的又.h和.m文件 ? 二.如何在上面的创建的工程上实现HelloWorld。   ...3.接下来要实现点击按钮后要做的事情:点击Button出来一个Alter, 该提示框的名字为hello, 上面有一个名为OK的按钮,上面的信息是“Hello Swift World”。  ?

    1.8K80

    Swift 的 asyncawait

    async-await 是在 WWDC 2021 期间的 Swift 5.5 的结构化并发变化的一部分。Swift的并发性意味着允许多段代码同时运行。...完成回调在Swift很常见,用于从异步任务返回,通常与一个结果类型的参数相结合。...调用方法结束 正如你所看到的,调用方法在获取图像之前结束。最终,我们收到了一个结果,然后我们回到了完成回调的流程。这是一个非结构化的执行顺序,可能很难遵循。...要做到这一点,你需要调整可用标记,如下所示: @available(*, deprecated, renamed: "fetchImages()") 你可以在我的文章如何在Swift中使用#available...你可以在整个项目中逐步改变你的实现,并使用Xcode中提供的修复按钮来自动转换你的代码以利用新的实现。

    3.5K30

    如何用TensorFlow和Swift写个App识别霉霉?

    TensorFlow Object Detection API:一款基于 TensorFlow 的框架,用于识别图像的物体。...我虽然没时间找几千张标记了 Taylor Swift 名字的照片,然后训练一个模型,但是我可以利用从 TensorFlow Object Detection API 预训练模型里提取出的特征,这些模型都是用几百万张图像训练而成...,我只需调整模型的一些层级,就能用它们完成具体的图像识别任务,比如识别 Taylor Swift。...所谓检查点就是一个二进制文件,包含了训练过程在具体点时TensorFlow模型的状态。下载和解压检查点后,你会看到它包含3个文件: ?...首先,在这个 Swift 客户端我添加了一个按钮,让用户可以访问手机相册。

    12.1K10
    领券