对齐和约束在 SwiftUI 中不起作用

alignment and constraint does not work in SwiftUI

我只是想使用在 -iPhone 和 iPad 设备上工作的段控制。 使用 SwiftUI,下面是代码和屏幕截图,此代码不适用于 iPad 和不同版本的 iPhone 设备。

struct ContentView: View {
    @State private var favoriteColor = 0
    
    var body: some View {
        NavigationView {
            HStack{
                Picker("What is your favorite color?", selection: $favoriteColor) {
                                Text("Red").tag(0)
                                Text("Green").tag(1)
                                Text("Blue").tag(2)
                            }
                            .pickerStyle(.segmented)
                            .padding(.top,10)
                 }
            }
}

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        Group {
            ContentView()
        }
    }
}

附上截图

iPad

不确定,如何为任何 iPhone 或 iPad 设备对齐此设置

您的 ipad 视图看起来不符合您的要求,因为您没有为导航视图提供 navigationViewStyle。

            NavigationView {
               HStack{
                   Picker("What is your favorite color?", selection: $favoriteColor) {
                                   Text("Red").tag(0)
                                   Text("Green").tag(1)
                                   Text("Blue").tag(2)
                               }
                               .pickerStyle(.segmented)
                               .padding(.top,10)
                    }
    }.navigationViewStyle(StackNavigationViewStyle())

只需在 NavigationView 的末尾添加 .navigationViewStyle(StackNavigationViewStyle())。

正如 Namra Parmar 所说,您需要设置(覆盖)iPad 的默认导航样式,因为默认情况下,视图堆叠在 iPhone 上,但它们会变成iPad 上的列。 以下是一些具有不同屏幕尺寸的设备:iPhone SE 1st gen(4.0 英寸),iPhone 13 Pro(6.06 英寸),iPhone 13 Pro Max(6.68 英寸),iPad 专业版(12.9 英寸),当您将 navigationViewStyle 设置为“StackNavigationViewStyle()”时。