SkeletonUI 旨在为骨架加载动画带来优雅的声明式语法。摆脱加载屏幕或旋转器,开始使用骨架来表示最终内容形状。
要求 :gear:
- macOS 10.15
- Xcode 11.0
- Swift 5.0
支持的平台 :iphone:
- iOS 13.0
- tvOS 13.0
- watchOS 6.0
- macOS 10.15
安装 :computer:
Swift Package Manager
Swift Package Manager 是一个用于自动化分发 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'
特性 :sparkles:
- SwiftUI 简单、声明式语法
- 极其简单易用
- 所有视图都可以使用骨架
- 完全可定制
- 通用(iPhone、iPad、iPod、Apple TV、Apple Watch、Mac)
- SwiftUI ViewModifier 的强大功能
- 轻量级代码库
用法 :rocket:
基本一行代码:
import SkeletonUI
import SwiftUI
struct UsersView: View {
@State var users = [String]()
var body: some View {
Text("已完成请求 \(users.count) 个用户!")
.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,
animation: .pulse(),
appearance: .solid(color: .red, background: .blue),
shape: .rectangle,
lines: 3,
scales: [1: 0.5])
}
.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")]
}
}
}
}
更新日志 :calendar:
详情请查看 CHANGELOG.md。
贡献 :tada:
详情请查看 CONTRIBUTING.md。
行为准则 :speech_balloon:
详情请查看 CODE_OF_CONDUCT.md。
致谢 :speak_no_evil:
SkeletonUI 由 CSolanaM 拥有和维护。你可以在 Twitter 上关注我 @CSolanaM,或通过电子邮件联系我,了解项目更新和发布。
许可证 :mortar_board:
SkeletonUI 基于 MIT 许可证发布。详情请查看 LICENSE。