swift - 如何使用 SwiftUI 将 VStack 在 List 内水平居中?

标签 swift swiftui watchos

我有一个简单的观点:

var body: some View {
    NavigationView {
        List(months) { month in
            NavigationLink {
                MonthView(month: month)
            } label: {
                VStack(alignment: .center, spacing: 8, content: {
                    Text("abc")
                    Text("abcdef")
                    Text("a")
                })
            }
            .listRowBackground(
                Color(uiColor: mode.darkUnderlayBackgroundColor)
                    .clipped()
                    .cornerRadius(10)
            )
        }
        .navigationTitle(months.first?.descriptiveYear ?? "")
    }
}

结果是:

enter image description here

如何将其置于整个 View 的中心?

最佳答案

您只需使用.frame 修饰符将maxWidth 设置为无穷大。这将允许它水平扩展以占据所需的空间

VStack(alignment: .center, spacing: 8) {
    Text("abc")
    Text("abcdef")
    Text("a")
}
.frame(maxWidth: .infinity)

关于swift - 如何使用 SwiftUI 将 VStack 在 List 内水平居中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75215109/

相关文章:

swiftui - 如何在 SwiftUI 中制作半透明导航栏?

SwiftUI:动画列表中的更改而不动画内容更改

ios - 为 UITableView 使用 RxCocoa 扩展时,如何控制 canEditRowAtIndexPath

ios - swift “线程1 : Signal SIGABRT in PresentViewController

Swiftui navigationLink macOS 默认/选中状态

ios - Swift:NSURL session 不适用于 watchOS

swift - healthStore.requestAuthorization() 导致 Apple Watch 应用程序崩溃

swift - 计时问题: Metronome using AVAudioEngine scheduleBuffer's completion handler

ios - Swift - 后台线程通过身份验证使应用程序崩溃

animation - 为什么 NavigationView 中的动画从左上角开始?