WrappingHStack
一个类似于 HStack
的 SwiftUI 组件,它将水平溢出的子视图自动扩展到下一行。
概述
该库基于 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 添加到 Xcode 项目中。
如果您想在 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。