欢迎使用 AStack,一个为您带来自适应和可访问的 SwiftUI 堆栈的库。
AStack 引入了四个新的 SwiftUI 视图
AHStack
AVStack
LazyAHStack
LazyAVStack
它们的行为基于 环境 的 ContentSizeCategory
和/或 UserInterfaceSizeClass
.regular
时,它们等同于 SwiftUI 的对应项.compact
时,视图会切换对齐方式(例如,从水平切换到垂直)默认情况下,所有视图仅观察 ContentSizeCategory
,但是可以通过 observing
参数将其更改为观察 ContentSizeCategory
或 UserInterfaceSizeClass
,两者都观察,或都不观察。
像使用任何其他堆栈视图一样使用任何 AStack 视图
import AStack
import SwiftUI
struct ContentView: View {
var body: some View {
AHStack {
...
}
}
}
@available(macOS 11, iOS 14, watchOS 7, tvOS 14, *)
struct ContentView2: View {
var body: some View {
LazyAVStack {
...
}
}
}
可以自定义对齐方式和间距等属性
import AStack
import SwiftUI
struct ContentView: View {
var body: some View {
AHStack(
hAlignment: .top, // HStack alignment
vAlignment: .leading // VStack alignment
) {
...
}
}
}
import AStack
import SwiftUI
struct ContentView: View {
var body: some View {
AHStack {
ZStack {
RoundedRectangle(cornerRadius: 12).strokeBorder()
Text("1")
}
ZStack {
RoundedRectangle(cornerRadius: 12).strokeBorder()
Text("2")
}.foregroundColor(.purple)
ZStack {
RoundedRectangle(cornerRadius: 12).strokeBorder()
Text("3")
}.foregroundColor(.blue)
}
}
}
import AStack
import SwiftUI
struct ContentView: View {
var body: some View {
AVStack {
ZStack {
RoundedRectangle(cornerRadius: 12).strokeBorder()
Text("1")
}
ZStack {
RoundedRectangle(cornerRadius: 12).strokeBorder()
Text("2")
}.foregroundColor(.purple)
ZStack {
RoundedRectangle(cornerRadius: 12).strokeBorder()
Text("3")
}.foregroundColor(.blue)
}
}
}
AStack 使用 Swift Package Manager 分发。 要将其安装到项目中,请按照 此教程 并使用此存储库 URL:https://github.com/zntfdr/AStack.git
。
AStack 由 Federico Zanetello 构建,是 Bangkok Metro 的一个组件。
欢迎并鼓励所有用户积极参与项目的持续开发 - 通过修复他们遇到的任何错误,或通过改进发现不足的文档。
如果您想进行更改,请打开一个 Pull Request,即使它只包含您计划更改的草稿,或者一个重现问题的测试。
感谢您,请尽情使用 AStack!