对齐和约束在 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()”时。
我只是想使用在 -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 设备对齐此设置
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()”时。