CornerStacks

Swift Package Manager Twitter: @filiplazov

CornerStacks 提供了一种简单的方法,可以在父视图的四个角上布局 SwiftUI 视图。 它通过包装 HStackVStack 来实现,其直接的实现方式是将 HStackVStack 与一些 Spacer 结合起来,从而为每个角落视图生成所需的布局。 主要目的是减少样板代码设置,提高代码可读性并实现快速原型设计。 John Sundell 在这个视频中很好地解释了这种布局技术。

要求

安装

I. 在 Xcode 中自动安装

II. 在您的 Package.swift 文件中手动添加

.package(url: "https://github.com/filiplazov/CornerStacks", from: "0.1.0")

用法

在使用任何视图之前,请确保导入 CornerStacks 模块

import CornerStacks

HStackVStack 定义了 4 个视图,分别代表 4 个角。

HStack

VStack

示例

通过一个示例更容易解释

var body: some View {
  ZStack {
    // just like a normal HStack you can place many nested views
    TopLeadingHStack {
      makeSquare(size: 80)
      makeSquare(size: 80)
    }
    // spacing is passed along to the wrapped HStack and VStack
    TopTrailingVStack(spacing: 30) {
      makeSquare(size: 80)
      makeSquare(size: 80)
    }
    // horizontal alignment is passed along to the wrapped VStack
    BottomLeadingVStack(alignment: .leading) {
      makeSquare(size: 40)
      makeSquare(size: 80)
    }
    // vertical alignment passed along to the wrapped VStack
    BottomTrailingHStack(alignment: .top) {
      makeSquare(size: 80)
      makeSquare(size: 40)
    }
    // it also works in nested views like other VStacks and HStacks
    HStack {
      TopLeadingHStack {
        makeSquare(size: 40)
      }
      BottomTrailingVStack {
        makeSquare(size: 40)
        makeSquare(size: 40)
      }
    }
    .frame(width: 200, height: 150)
    .background(Color.black)
  }
}

这是上面代码的输出

Example

贡献

非常欢迎贡献。 请在提交拉取请求之前创建一个 GitHub issue 来规划和讨论实现。

作者

许可证

CornerStacks 在 MIT 许可证下可用。 有关更多信息,请参阅 LICENSE 文件。