WrappingHStack:SwiftUI 自动换行水平堆栈组件





项目名称:WrappingHStack

WrappingHStack 是一个开源的 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 对齐,但也支持其他对齐值,如 .leading, .topLeading, .top, .topTrailing, .trailing, .bottomTrailing, .bottom, .bottomLeading。其他未列出的对齐值将被视为 .center

组件默认使用系统提供的间距,但也可以通过 horizontalSpacingverticalSpacing 明确指定间距。

组件默认跨越整个可用宽度,但可以通过设置 fitContentWidthtrue 来根据内容调整其宽度。

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

示例

一个标签数组的示例:

WrappingHStack(alignment: .leading) {
    ForEach(tags) {
        Text($0.text)
            .foregroundColor(Color.white)
            .padding(.horizontal, $0.horizontalPadding)
            .padding(.vertical, $0.verticalPadding)
            .background(Color.gray)
            .cornerRadius(16)
    }
}

安装

你可以通过添加包依赖将 WrappingHStack 添加到 Xcode 项目中。

使用 Swift Package Manager,在 Package.swift 中添加以下内容:

dependencies: [
    .package(url: "https://github.com/ksemianov/WrappingHStack", from: "0.2.0")
]

使用 CocoaPods,在 Podfile 中添加以下内容:

'WrappingHStackLayout', '~> 0.2.0'

许可证

这个库是在 MIT 许可证下发布的。详情见 LICENSE

 

或许喜欢

ActivityIndicatorView:SwiftUI 创建的预设加载指示器库

ActivityIndicatorView 是一个 SwiftUI 库,提供多种预设的加载动画指示器,支持自定义样式和动画,适用于 iOS、watchOS、tvOS 和 macOS 平台。

最近更新 2024-12-11

LabelButtonKit:SwiftUI 标签按钮库支持动态类型

LabelButtonKit 是一个为 SwiftUI 设计的标签按钮库,支持 SF Symbols,动态类型,并且完全可定制,适用于 iOS、macOS、watchOS 和 tvOS。

最近更新 2024-12-09

swiftui-map-item-picker:SwiftUI 地图项目选择器

swiftui-map-item-picker 是一个 SwiftUI 地图项目选择器,支持在 iOS 和 Mac Catalyst 上选择位置。

最近更新 2024-12-09

热榜

Made with in Shangrao,China By 老雷

Copyright © devler.cn 1987 - Present

赣ICP备19009883号-1