你如何在 SwiftUI 的 ScrollView 中居中文本

How do you center Text in ScrollView at SwiftUI

如何让文本居中?

文本位于滚动视图的左侧。

什么是 .center

var scrolls =  ["One", "Two", "Three"]
    
    VStack {
        
        Spacer()
        
        ForEach(0..<scrolls.count
                , id: \.self) { index in
            
            ScrollView(.horizontal, showsIndicators: true) {
                
                
                
                Text(" \(scrolls[index])")
                
                    .frame(maxWidth: .infinity,
                           maxHeight: .infinity,
                           alignment: .center)
                
                
                    .background(Color.gray)
                
                
            }
            
            .frame(maxWidth: .infinity,
                   maxHeight:50,
                   alignment:
                    .center)
            
            
            .background(Color.green)
            
        }.frame(alignment: .bottom)
        
        
    }
}

您可以使用 GeometryReaderframe(minWidth:,如下所示。

测试 Xcode 13.2 / iOS 15.2

var body: some View {
    GeometryReader { gr in
        VStack {
            Spacer()
            ForEach(0..<scrolls.count
                      , id: \.self) { index in

                ScrollView(.horizontal, showsIndicators: true) {
                    Text(" \(scrolls[index])")
                        .frame(minWidth: gr.size.width,       // << here !!
                                 maxHeight: .infinity,
                                 alignment: .center)
                        .background(Color.gray)
                }
                .frame(maxWidth: .infinity,
                         maxHeight:50,
                         alignment:
                                .center)
                .background(Color.green)
            }.frame(alignment: .bottom)
        }
    }
}