SPAlert
来自 Apple Music 和 AppStore 反馈的弹出窗口。包含 完成
、心形
、错误
等功能。支持暗黑模式和新 SwiftUI
。我尽量复现 Apple 的提示框。您反馈后或者在 Apple Music 中添加歌曲后,您可以在 AppStore 找到这些提示框。
若要从静音模式切换获取提示,检查 SPIndicator 库。
导航
安装
适用于 iOS 11 及以上版本。
Swift 包管理器
Swift包管理器(Swift Package Manager)是一个用于自动化Swift代码分发的工具,并集成到swift
编译器中。它与Swift构建系统集成,以自动化下载、编译和链接依赖项的过程。
一旦你的Swift包设置好,将其作为一个依赖项添加就像将其添加到Package.swift
的dependencies
值中一样简单。
dependencies: [
.package(url: "https://github.com/ivanvorobei/SPAlert", .upToNextMajor(from: "4.1.0"))
]
CocoaPods
CocoaPods是一个依赖项管理器。有关用法和安装说明,请访问他们的网站。要使用CocoaPods集成,请在Podfile
中指定它。
pod 'SPAlert'
手动操作
如果你不想使用任何依赖项管理器,你可以手动进行集成。将Sources/SPAlert
文件夹放入你的Xcode项目中。请确保启用“如果需要则复制项目项”和“创建组”。
快速入门
为了获得最佳体验,我建议通过调用SPAlert
类的函数来显示警告框。这些函数会定期更新,并且以一种类似于苹果的方式显示警告框。
SPAlert.present(title: "Added to Library", preset: .done)
对于使用自定义图片
SPAlert.present(title: "Love", message: "We'll recommend more like this in For You", preset: .custom(UIImage.init(named: "heart")!))
对于显示简单的文本消息
SPAlert.present(message: "Something going wrong", haptic: .error)
用法
持续时间
为了改变显示时间,创建一个警告视图并使用自定义持续时间调用 如果你不希望在指定时间内消失警告,请禁用 在这种情况下,你必须手动消失警告。 如果您轻触警报,它将消失。这可以禁用。 您还可以手动关闭所有警报,只需调用此方法。 要自定义布局和边距,请使用 要管理触觉反馈,您应在 present 方法中传入它。 您可以移除持续时间或完成状态,它有默认值。 我添加了预设 默认情况下,对于此预设 要更改图标颜色,只需为任何预设设置色调颜色。 您还可以更改警报的某些默认值。例如,您可以使用以下代码更改警报的默认持续时间和圆角半径: 它将适用于所有警报。我建议在应用程序代理中设置这些值。但在运行时也可以更改。 使用类似于系统警告,仅显示消息提示 或显示消息、标题、图片和其他配置 我在Telegram频道发布新闻和教程。 视频教程发布在YouTubelet alertView = SPAlertView(title: "Complete", preset: .done)
alertView.duration = 4
alertView.present()
dismissInTime
。之后,将忽略duration
属性。alertView.dismissInTime = false
关闭
alertView.dismissByTap = false
SPAlert.dismiss()
布局
layout
属性。您可以管理每一侧的边距、图标大小以及图像和标题之间的间距。alertView.layout.iconSize = .init(width: 24, height: 24)
alertView.layout.margins.top = 12
alertView.layout.spaceBetweenIconAndTitle = 8
触觉
alertView.present(duration: 1.5, haptic: .success, completion: nil)
圆盘指示器
.spinner
,要使用它只需调用此方法。let alertView = SPAlertView(title: "Please, wait", preset: .spinner)
alertView.present()
dismissInTime
已禁用,需要手动关闭警报。您只能为单个视图或关闭所有警报执行此操作。// For one alert
alertView.dismiss()
// For all alerts
SPAlert.dismiss()
颜色
alertView.iconView?.tintColor = .systemRed
//If you set custom image, don't forget set rendering mode:
UIImage(systemName: "pencil.and.outline")!.withRenderingMode(.alwaysTemplate)
全局外观
SPAlertView.appearance().duration = 2
SPAlertView.appearance().cornerRadius = 12
SwiftUI
Button("Show alert") {
showAlert = true
}.SPAlert(isPresent: $showAlert, message: "this is message only")
Button("Show alert") {
showAlert = true
}.SPAlert(
isPresent: $showAlert,
title: "Alert title",
message: "Alert message",
duration: 2.0,
dismissOnTap: false,
present: .custom(UIImage(systemName: "heart")!),
haptic: .success,
layout: .init(),
completion: {
print("Alert is destory")
})
俄罗斯社区
在聊天中会有问题解答。