SkeletonUI 旨在为骨架加载动画引入优雅的声明性语法。摆脱加载页面或加载指示器,开始使用骨架来表示最终内容的形状。
⚙️
需求- macOS 10.15。
- Xcode 11.0。
- Swift 5.0。
📱
支持的平台- iOS 13.0。
- tvOS 13.0。
- watchOS 6.0。
- macOS 10.15。
💻
安装Swift 包管理器
Swift 包管理器 是一个自动化 Swift 代码发布的工具,并集成到 swift
编译器中。一旦您设置了 Swift 包,将 SkeletonUI
添加为依赖项就像将其添加到您的 Package.swift
中的 dependencies
值一样简单。
dependencies: [
.package(url: "https://github.com/CSolanaM/SkeletonUI.git", .branch("master"))
]
CocoaPods
CocoaPods 是 Cocoa 项目的集中式依赖管理工具。有关使用和安装说明,请访问他们的网站。要使用 CocoaPods 将 SkeletonUI 集成到您的 Xcode 项目中,请在 Podfile
中指定它。
pod 'SkeletonUI'
✨
功能- SwiftUI 简单的声明式语法。
- 极其简单,易于设置。
- 所有视图均可使用骨架。
- 完全可定制。
- 通用(iPhone、iPad、iPod、Apple TV、Apple Watch、Mac)。
- SwiftUI ViewModifier 功能。
- 轻量级代码库。
🚀
使用基本单行语句
import SkeletonUI
import SwiftUI
struct UsersView: View {
@State var users = [String]()
var body: some View {
Text("Finished requesting \(users.count) users!")
.skeleton(with: users.isEmpty)
.onAppear {
DispatchQueue.main.asyncAfter(deadline: .now() + 5) {
self.users = ["John Doe", "Jane Doe", "James Doe", "Judy Doe"]
}
}
}
}
高级定制
import SkeletonUI
import SwiftUI
struct User: Identifiable {
let id = UUID()
let name: String
}
struct UsersView: View {
@State var users = [User]()
var body: some View {
SkeletonList(with: users, quantity: 6) { loading, user in
Text(user?.name)
.skeleton(with: loading)
.shape(type: .rectangle)
.appearance(type: .solid(color: .red, background: .blue))
.multiline(lines: 3, scales: [1: 0.5])
.animation(type: .pulse())
}
.onAppear {
DispatchQueue.main.asyncAfter(deadline: .now() + 5) {
self.users = [User(name: "John Doe"),
User(name: "Jane Doe"),
User(name: "James Doe"),
User(name: "Judy Doe")]
}
}
}
}
📆
变更日志深入了解 CHANGELOG.md。
🎉
贡献
查看CONTRIBUTING.md获取详细说明。
💬
行为准则查看CODE_OF_CONDUCT.md获取详细说明。
🙊
致谢SkeletonUI由
🎓
许可协议SkeletonUI遵循MIT许可协议。查看LICENSE获取详细说明。