PillboxView

PillboxView 是一个小药丸形状的视图,用于展示异步任务、异步任务的状态或即时任务。它显示一个小的气泡状、药丸形状的盒子,从屏幕顶部滑出。你很可能在 iOS 中见过它,例如在铃声状态改变、Airpods 连接以及复制你的 Discord ID 等时候。

注意:Discord 并没有使用这个依赖库,他们是我创建它的灵感来源,因为我找不到一个能实现这种效果的依赖库。

📝 这里 是由 DocC 提供支持的最新版本的 API 文档。

安装

PillboxView 可以通过 Swift Package Manager 获取。

项目依赖

为了同时支持原生 AppKitUIKit,PillboxView 利用了 NSUI 项目。NSUI 允许使用更少的 #if 预处理语句,就可以用单个代码库支持两个平台。

包描述文件 package.swift 定义了该依赖项。在将 PillboxView 包含到你自己的项目中之前,你应该了解这些信息。

示例

一个完整的示例应用程序的 repo 可以在 这里 找到

快速开始

异步任务

这非常适合于网络调用,以确保用户知道正在进行某些操作。

你所需要做的就是传入一个标题消息和你 UIViewControllerUIView

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 文件。