介绍一系列 SwiftUI 的扩展功能,让你的项目构建更加容易。
此外,我希望这个仓库也能作为一个很好的资源,让你了解如何实现 SwiftUI 的功能 👍
构建像这样的实用库,会占用我陪伴家人的时间。我利用业余时间构建这些工具,因为我觉得回馈社区很重要。请考虑赞助我,这有助于我继续开发更多像这样的实用库 😬
你也可以关注我,并随时给我一个“感谢”。
一个可以自动调整大小的 GeometryReader
,使你能够自动调整内容的大小,同时仍然可以访问代理的值,例如它的运行时大小。
VScrollStack
– 将 VStack
包装在 ScrollView
中,同时仍然尊重诸如 Spacer
之类的元素。HScrollStack
– 将 HStack
包装在 ScrollView
中,同时仍然尊重诸如 Spacer
之类的元素。一个新的基于文本的滑块,通过拖动手势进行交互,并且可以直接进行键盘输入以获取更具体的值。此外,它还支持用于自定义设计的样式 API。
一个基于垂直行的堆栈视图,水平布局其子视图,直到它们不再适合,然后开始将子视图“环绕”到新行上。
类似于 UICollectionViewFlowLayout
触觉和反馈
支持各种熟悉的、受动画启发的 API,用于将触觉和其他反馈(音频、闪光等)附加到状态更改。
作为一种便利,API 提供了以 haptic
为中心的 API。
withHaptic(.selection) { }
body.haptic(.selection) { }
但是,你也可以使用 withFeedback
和 feedback
API 来获得更多控制权并访问其他反馈方法。 特别是,你可以组合这些方法,为用户提供更复杂的反馈。
withFeedback(
.haptic(.selection)
.combined(with:
.audio(.focusChangeSmall)
)
)
此示例将播放一个短音频文件,同时提供触觉反馈(如果支持)。
另请注意,Feedback Audio API 提供了对几乎所有内置音频文件的简化访问,方便使用。
此软件包自动包含 SwiftBackports 和 SwiftUIBackports,以便为所有 SwiftUI 客户端提供更丰富的 API 集。
你可以手动安装(通过复制 Sources
目录中的文件)或使用 Swift Package Manager(首选)
要使用 Swift Package Manager 安装,请将此添加到 Package.swift
文件的 dependencies
部分
.package(url: "https://github.com/shaps80/SwiftUIPlus.git", .upToNextMinor(from: "1.0.0"))