CxjToasts

轻松呈现 Toast 消息,并在显示的 Toast 消息之间实现各种交互行为。CxjToasts 提供了一个直观且高度可定制的解决方案,用于管理 iOS 应用程序中的 Toast 通知。

Static Image


目录


特性


Toast 使用示例视频

本节通过视频演示了 Toast 使用的各种示例。每个视频都展示了特定类型的 Toast 行为或交互。

Animated GIF Animated GIF Animated GIF Animated GIF
Animated GIF Animated GIF Animated GIF Animated GIF

示例项目

要探索 CxjToasts 的完整功能,请查看此存储库中提供的示例项目。

示例项目演示了

只需克隆存储库并打开示例项目,即可查看 CxjToasts 的实际效果。

点击此处查看示例项目。


Swift 版本支持

您可以在 Swift Package Index 上找到有关 CxjToasts 的 Swift 版本支持的最新信息

Swift Versions

隐私

CxjToasts 不会收集任何数据。 提供此通知是为了帮助您完成 App 隐私详情。 此外,还包含了隐私清单,如果需要,可以将其集成到您的应用程序中。

安装

Swift Package Manager

您可以使用 Swift Package Manager 通过将描述添加到您的 Package.swift 文件来安装 CxjToasts

dependencies: [
    .package(url: "https://github.com/coxijcake/CxjToasts", from: "1.0.9")
]

CocoaPods

pod "CxjToasts"

导入

安装后,使用以下命令将库导入到您的项目中

import CxjToasts

如何使用 Toast 消息

管理 Toast 的主要入口点是 CxjToastsCoordinator.shared 单例。 它提供了显示和关闭 Toast 的方法,以及管理活动 Toast 的方法。

初始化

在使用 CxjToasts 之前,建议通过调用以下代码来初始化库

CxjToasts.start()

这确保 CxjToastsCoordinator 单例已初始化并开始观察键盘状态。 这对于依赖于键盘可见性或位置的 Toast 尤其重要,以确保它们正确显示。

显示 Toast 消息

使用 showToast 方法来显示 Toast 消息。 它返回一个 IdentifiableToast 对象,可用于进一步的交互。

CxjToastsCoordinator.shared.showToast(type: toastType, animated: true)
let toast = CxjToastsCoordinator.shared.showToast(type: toastType, animated: true)
CxjToastsCoordinator.shared.dismissToast(toast, animated: true)

关闭 Toast 消息

您可以关闭特定的 Toast、视图内的 Toast 或所有活动的 Toast

观察 Toast 状态

您可以使用 CxjToastsCoordinator 中提供的观察者方法来观察 Toast 的状态。 这使您可以对特定的 Toast 事件做出反应,例如在 Toast 呈现或关闭时。

添加和删除观察者

要开始观察 Toast 事件,请使用 add(observer:)remove(observer:) 方法

CxjToastsCoordinator.shared.add(observer: someObserver)
CxjToastsCoordinator.shared.remove(observer: someObserver)

观察者协议方法

以下方法可供观察者实现,使您可以处理 Toast 生命周期事件


Toast 类型

CxjToastType

CxjToastType 枚举定义了要显示的 Toast 类型,并且具有以下情况

  1. 模板化 Toast:使用预定义的模板来表示常见的 Toast 用例。
  2. 自定义 Toast:通过提供特定的配置、视图设置和内容来创建自定义 Toast。

自定义 Toast 配置

对于自定义 Toast,您需要创建一个 CxjToastType.CustomToastData 对象。

CustomToastData 结构


Toast 配置

用于定义 Toast 的行为、外观和交互的核心结构。它提供了一个灵活的 API 来自定义动画、布局、关闭方法等。

CxjToastConfiguration

参数 描述
typeId Toast 的标识符,用于管理交互,例如垃圾邮件防护和共存策略。 它还允许关闭具有特定 typeId 的所有 Toast。 注意:typeId 不等于 CxjToast.id,并且不需要是唯一的。
sourceView 与 Toast 关联的视图。 通常用于布局计算或交互。
sourceBackground Toast 的可选背景配置。 支持触摸交互和操作。
layout Toast 的布局配置,包括 placementconstraints
dismissMethods 定义如何关闭 Toast,例如通过滑动、点击或自动超时。
keyboardHandling 配置键盘可见时的行为,例如将 Toast 移动到键盘上方。
animations Toast 呈现和关闭的动画设置。
hapticFeedback Toast 的触觉反馈(例如,成功、错误或自定义)。
spamProtection 启用或禁用垃圾邮件防护,并定义 Toast 比较的标准。
coexistencePolicy 定义在显示新 Toast 时,Toast 如何与其他 Toast 交互。

视图配置

定义 Toast 视图的视觉和结构属性。 此配置确保 Toast 无缝集成到您应用程序的设计和功能中。

CxjToastViewConfiguration

参数 描述
contentLayout 确定内容在 Toast 视图内的布局方式(例如,用插图填充、特定约束)。
background 指定 Toast 视图的背景样式,例如颜色、模糊效果、渐变或自定义视图。
shadow 配置 Toast 视图的阴影外观。
corners 配置 Toast 视图的角样式,例如圆形或胶囊形。
isUserInteractionEnabled 指定是否启用与 Toast 视图的用户交互。

内容配置

通过使用预定义的模板或提供您自己的自定义内容视图以在 Toast 中显示,可以轻松地配置 Toast 内容,而无需手动布局。

CxjToastContentConfiguration

情况 描述
.info(type:) 显示带有文本或文本和图标的信息性 Toast。
.action(config:infoContent:) 显示带有操作(例如,按钮)和可选信息内容的 Toast。
.undoAction(config:) 显示带有撤消操作的 Toast,例如用于还原先前操作的按钮。
.custom(contentView:) 允许通过提供实现 CxjToastContentView 的自定义视图来自定义内容。

InfoContentType

情况 描述
.text(config:) 显示仅包含文本的信息性 Toast。
.textWithIcon(iconConfig:, textConfig:) 显示带有文本和图标的信息性内容,分别进行配置。

许可协议

CxjToasts 在 MIT 许可下可用。 有关更多信息,请参见 LICENCE