轻松呈现 Toast 消息,并在显示的 Toast 消息之间实现各种交互行为。CxjToasts 提供了一个直观且高度可定制的解决方案,用于管理 iOS 应用程序中的 Toast 通知。
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
要探索 CxjToasts 的完整功能,请查看此存储库中提供的示例项目。
示例项目演示了
只需克隆存储库并打开示例项目,即可查看 CxjToasts 的实际效果。
您可以在 Swift Package Index 上找到有关 CxjToasts 的 Swift 版本支持的最新信息
CxjToasts 不会收集任何数据。 提供此通知是为了帮助您完成 App 隐私详情。 此外,还包含了隐私清单,如果需要,可以将其集成到您的应用程序中。
您可以使用 Swift Package Manager 通过将描述添加到您的 Package.swift 文件来安装 CxjToasts
dependencies: [
.package(url: "https://github.com/coxijcake/CxjToasts", from: "1.0.9")
]
pod "CxjToasts"
安装后,使用以下命令将库导入到您的项目中
import CxjToasts
管理 Toast 的主要入口点是 CxjToastsCoordinator.shared
单例。 它提供了显示和关闭 Toast 的方法,以及管理活动 Toast 的方法。
在使用 CxjToasts 之前,建议通过调用以下代码来初始化库
CxjToasts.start()
这确保 CxjToastsCoordinator 单例已初始化并开始观察键盘状态。 这对于依赖于键盘可见性或位置的 Toast 尤其重要,以确保它们正确显示。
使用 showToast
方法来显示 Toast 消息。 它返回一个 IdentifiableToast
对象,可用于进一步的交互。
@discardableResult showToast(type: animated:) -> IdentifiableToast
:CxjToastsCoordinator.shared.showToast(type: toastType, animated: true)
let toast = CxjToastsCoordinator.shared.showToast(type: toastType, animated: true)
CxjToastsCoordinator.shared.dismissToast(toast, animated: true)
templated(template: CxjToastTemplate)
:使用预定义的模板来表示常见的 Toast 类型,例如成功、错误或信息。custom(data: CxjToastType.CustomToastData)
:提供自定义配置、视图设置和内容,以实现完全可自定义的 Toast。true
。您可以关闭特定的 Toast、视图内的 Toast 或所有活动的 Toast
dismissToast(toast: animated:)
:dismissToastsInsideView(_ sourceView: animated:)
:dismissAll(animated:)
:您可以使用 CxjToastsCoordinator
中提供的观察者方法来观察 Toast 的状态。 这使您可以对特定的 Toast 事件做出反应,例如在 Toast 呈现或关闭时。
要开始观察 Toast 事件,请使用 add(observer:)
和 remove(observer:)
方法
CxjToastsCoordinator.shared.add(observer: someObserver)
CxjToastsCoordinator.shared.remove(observer: someObserver)
以下方法可供观察者实现,使您可以处理 Toast 生命周期事件
willPresent(toast:)
:在 Toast 呈现之前调用。didPresent(toast:)
:在 Toast 呈现之后立即调用。willDismiss(toast:)
:在 Toast 关闭之前调用。didDismiss(toast:)
:在 Toast 关闭之后立即调用。CxjToastType
枚举定义了要显示的 Toast 类型,并且具有以下情况
对于自定义 Toast,您需要创建一个 CxjToastType.CustomToastData
对象。
CxjToastConfiguration
对象,用于定义 Toast 行为,例如持续时间。CxjToastViewConfiguration
对象,用于定义视觉属性,例如背景颜色和圆角半径。CxjToastContentView
的自定义视图,用于定义 Toast 中显示的实际内容。用于定义 Toast 的行为、外观和交互的核心结构。它提供了一个灵活的 API 来自定义动画、布局、关闭方法等。
参数 | 描述 |
---|---|
typeId |
Toast 的标识符,用于管理交互,例如垃圾邮件防护和共存策略。 它还允许关闭具有特定 typeId 的所有 Toast。 注意:typeId 不等于 CxjToast.id ,并且不需要是唯一的。 |
sourceView |
与 Toast 关联的视图。 通常用于布局计算或交互。 |
sourceBackground |
Toast 的可选背景配置。 支持触摸交互和操作。 |
layout |
Toast 的布局配置,包括 placement 和 constraints 。 |
dismissMethods |
定义如何关闭 Toast,例如通过滑动、点击或自动超时。 |
keyboardHandling |
配置键盘可见时的行为,例如将 Toast 移动到键盘上方。 |
animations |
Toast 呈现和关闭的动画设置。 |
hapticFeedback |
Toast 的触觉反馈(例如,成功、错误或自定义)。 |
spamProtection |
启用或禁用垃圾邮件防护,并定义 Toast 比较的标准。 |
coexistencePolicy |
定义在显示新 Toast 时,Toast 如何与其他 Toast 交互。 |
定义 Toast 视图的视觉和结构属性。 此配置确保 Toast 无缝集成到您应用程序的设计和功能中。
参数 | 描述 |
---|---|
contentLayout |
确定内容在 Toast 视图内的布局方式(例如,用插图填充、特定约束)。 |
background |
指定 Toast 视图的背景样式,例如颜色、模糊效果、渐变或自定义视图。 |
shadow |
配置 Toast 视图的阴影外观。 |
corners |
配置 Toast 视图的角样式,例如圆形或胶囊形。 |
isUserInteractionEnabled |
指定是否启用与 Toast 视图的用户交互。 |
通过使用预定义的模板或提供您自己的自定义内容视图以在 Toast 中显示,可以轻松地配置 Toast 内容,而无需手动布局。
情况 | 描述 |
---|---|
.info(type:) |
显示带有文本或文本和图标的信息性 Toast。 |
.action(config:infoContent:) |
显示带有操作(例如,按钮)和可选信息内容的 Toast。 |
.undoAction(config:) |
显示带有撤消操作的 Toast,例如用于还原先前操作的按钮。 |
.custom(contentView:) |
允许通过提供实现 CxjToastContentView 的自定义视图来自定义内容。 |
情况 | 描述 |
---|---|
.text(config:) |
显示仅包含文本的信息性 Toast。 |
.textWithIcon(iconConfig:, textConfig:) |
显示带有文本和图标的信息性内容,分别进行配置。 |
CxjToasts 在 MIT 许可下可用。 有关更多信息,请参见 LICENCE。