zl程序教程

您现在的位置是:首页 >  工具

当前栏目

Transferable 在 SwiftUI 中实现拖放的初体验 Swift 中的游戏规则改变者协议(教程含源码)

源码教程协议 实现 改变 swift SwiftUI 初体验
2023-09-11 14:18:29 时间

在 WWDC 2022 和其他有趣的公告中,Apple 在 Swift 中展示了一个名为Transferable的新协议。简而言之,Transferable 使得在同一应用程序内的不同位置甚至不同应用程序之间复制数据变得非常简单和绝对直接。而当谈到复制时,这不仅包括复制和粘贴,还包括拖放。

在 Transferable 可用之前,必须执行一系列特定步骤才能如上所述传输数据。特别是对于自定义类型,必须采用特定协议并实现一些必需的方法,以便序列化和反序列化、与项目提供者及其包含的数据一起工作等等。然而,所有相关细节在这里都没有多大意义,因为主题是所有这些的演变,Transferable 协议。对于所有这些工作的人来说,Transferable 绝对是游戏规则的改变者。

使用 Transferable,复制或拖放以下内容几乎不需要任何努力:

  • 符合 Codable 协议的自定义类型的对象
  • Data
  • Files

但是请注意,Transferable 在引入之前不受任何操作系统的支持;启用复制粘贴或拖放它们仍然需要求助于以前的编程技术。换句话说,Transferable 可以在 iOS 16+、macOS 13+(Ventura 及更新版本)、watchOS 9.0+ 和 tvOS 16+ 中使用。

这篇文章重点介绍如何使用 Transferable 拖放源自符合 Codable 协议的自定义类型的数据。您很快就会发现,与 Transferable 相关的所需代码行只是几行,因为它负责处理幕后的所有繁重工作。

一个演示项目
为了探索使用 Transferable 启用拖放功能需要什么,我们将专注于实现一个小项目。一方面,我们将展示一系列的一些颜色项目视图,而在另一侧