WrappingHStackLayout 0.2.0

WrappingHStackLayout 0.2.0

维护者 Konstantin Semianov



  • Konstantin Semianov <ksemianov>

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

默认情况下,组件使用系统提供的间距,但也可以指定显式的 horizontalSpacingverticalSpacing

默认情况下,组件宽度为可用宽度的全部。但是,您可以将 fitContentWidth 设置为 true 以使其根据其内容调整宽度。

该组件假设最大的子视图适合其边界,并且没有无限增长的子视图。组件假设它可以按需垂直增长以适应宽度约束。

示例

标签数组

WrappingHStack

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 项目中。

https://github.com/ksemianov/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