一个 SwiftUI 组件,类似于 HStack
,可以将水平溢出的子视图换行到下一行。
该库基于 SwiftUI 的 Layout
协议,因此具有以下部署要求
iOS 16.0+, iPadOS 16.0+, macOS 13.0+, Mac Catalyst 16.0+, tvOS 16.0+, watchOS 9.0+
组件的签名
WrappingHStack(alignment: Alignment = .center,
horizontalSpacing: CGFloat? = nil,
verticalSpacing: CGFloat? = nil,
fitContentWidth: Bool = false)
该组件默认使用 .center
对齐方式,但也支持以下对齐值:.center
, .leading
, .topLeading
, .top
, .topTrailing
, .trailing
, .bottomTrailing
, .bottom
, .bottomLeading
。其余的都按照 .center
处理。
该组件默认使用系统提供的间距,但也可能指定显式的 horizontalSpacing
和 verticalSpacing
。
该组件默认占据整个可用宽度。但是,您可以将 fitContentWidth
设置为 true
,使其根据其内容调整其宽度。
该组件假设最大的子视图适合边界,并且没有无限增长的子视图。该组件假设它可以根据需要垂直增长,以适应宽度约束。
标签数组
WrappingHStack(alignment: .leading) {
ForEach(tags) {
Text($0.text)
.foregroundColor(Color.white)
.padding(.horizontal, $0.horizontalPadding)
.padding(.vertical, $0.verticalPadding)
.background(Color.gray)
.cornerRadius(16)
}
}
您可以通过将其作为包依赖添加到 Xcode 项目中,来添加 WrappingHStack。
如果您想在 SwiftPM 项目中使用 WrappingHStack,只需简单地将其添加到 Package.swift
文件中的 dependencies
子句中即可。
dependencies: [
.package(url: "https://github.com/ksemianov/WrappingHStack", from: "0.2.0")
]
如果您想在 CocoaPods 项目中使用 WrappingHStack,请将此行添加到您的 Podfile
文件。
'WrappingHStackLayout', '~> 0.2.0'
该库根据 MIT 许可证发布。有关详细信息,请参阅 LICENSE。