PhantomKit 是一个集合了许多有用的 Swift 和 SwiftUI 扩展和组件的工具包。它是一个不可见的层,为你的应用程序提供支持,并使编写 Swift 代码更加容易。
这个包由几个库组成 - 你可以轻松地只导入你需要的那些
🟤 PhantomKitCore - Swift 扩展的集合
🟠 PhantomKitAPI - 一个网络库(访问 Web API 所需的组件)
🟢 PhantomKitLog - 一个日志记录库(提供控制台和 OSLog 实现)
🟣 PhantomKitUI - SwiftUI 组件和扩展的集合
PhantomKit 可以作为 Swift Package 使用。
.package(url: "https://github.com/pawello2222/PhantomKit.git", .upToNextMajor(from: "2.0.0"))
let button = UIButton().apply {
$0.isUserInteractionEnabled = false
}
UserDefaults.standard.apply {
$0.set("Value 1", forKey: "Key 1")
$0.set("Value 2", forKey: "Key 2")
$0.set("Value 3", forKey: "Key 3")
}
let date = Date(year: 2000, month: 1, day: 2, hour: 3, minute: 4, second: 5)
XCTAssertEqual(date.adjusting(\.second, by: 1).component(.second), 6)
XCTAssertEqual(date.adjusting(\.minute, by: 1).component(.minute), 5)
XCTAssertEqual(date.adjusting(\.hour, by: 1).component(.hour), 4)
XCTAssertEqual(date.adjusting(\.day, by: 1).component(.day), 3)
XCTAssertEqual(date.adjusting(\.month, by: 1).component(.month), 2)
XCTAssertEqual(date.adjusting(\.year, by: 1).component(.year), 2001)
Text("PhantomKit")
.fixedSize(.horizontal)
.frame(max: .infinity)
.onTap {
print("PhantomKit tapped")
}
extension URL {
static let home = URL(string: "https://tersacore.com")!
}
Text("Link")
.link(url: .home, openedAs: .fullscreen)
Text("Link")
.link(url: .home, openedAs: .external)
Text("Open sheet view")
.sheet {
Text("Sheet view")
}
Text("Open fullscreen view")
.fullScreenCover {
Text("Sheet view")
}
Text("PhantomKit")
.alignment(horizontal: .trailing)
// vs
HStack {
Spacer()
Text("PhantomKit")
}
PhantomKit 在 MIT 许可下可用。 有关更多信息,请参阅 LICENSE 文件。