PillboxView 是一个小药丸形状的视图,用于展示异步任务、异步任务的状态或即时任务。它显示一个小的气泡状、药丸形状的盒子,从屏幕顶部滑出。你很可能在 iOS 中见过它,例如在铃声状态改变、Airpods 连接以及复制你的 Discord ID 等时候。
注意:Discord 并没有使用这个依赖库,他们是我创建它的灵感来源,因为我找不到一个能实现这种效果的依赖库。
📝 这里 是由 DocC 提供支持的最新版本的 API 文档。
PillboxView 可以通过 Swift Package Manager 获取。
为了同时支持原生 AppKit
和 UIKit
,PillboxView 利用了 NSUI
项目。NSUI 允许使用更少的 #if 预处理语句,就可以用单个代码库支持两个平台。
包描述文件 package.swift
定义了该依赖项。在将 PillboxView
包含到你自己的项目中之前,你应该了解这些信息。
一个完整的示例应用程序的 repo 可以在 这里 找到
这非常适合于网络调用,以确保用户知道正在进行某些操作。
你所需要做的就是传入一个标题消息和你 UIViewController
的 UIView
。
import UIKit
import PillboxView
class ViewController: UIViewController {
let pill = PillView()
override func viewDidLoad() {
super.viewDidLoad()
pill.showTask(message: "Refreshing Data", vcView: self.view)
// Update the task message while the task is ongoing
pill.updateTask(message: "Still refreshing data...")
// some time later...
DispatchQueue.main.asyncAfter(deadline: .now() + 2) {
pill.completedTask(state: true) // this indicates the task's success
}
}
}
如果你想显示一个简洁的错误消息,并且任务的完成时间非常快(例如检查 UITextField
的值并报告是否有无效值),这尤其有用。
import UIKit
import PillboxView
class ViewController: UIViewController {
let pill = PillView()
override func viewDidLoad() {
super.viewDidLoad()
pill.showError(message: "Refreshing Data", vcView: self.view)
}
}
请让我知道你的使用感受,并用你的想法和建议帮助我改进这个项目。
iOS 13.0 或更高版本
PillboxView 在 MIT 许可证下可用。有关更多信息,请参见 LICENSE 文件。