通过使用.tabViewStyle(PageTabViewStyle())
将TabView用作pageviewer可以正常工作,但试图通过应用EdgesIgnoringSafeArea
让它从边缘到边缘运行似乎不起作用。
我错过了什么?
struct ContentView: View {
let colors: [Color] = [.red, .green, .blue]
var body: some View {
TabView {
ForEach(0...3, id: \.self) { index in
Rectangle()
.fill(colors[index])
}
}
.tabViewStyle(PageTabViewStyle())
.edgesIgnoringSafeArea(.all)
}
}
向Rectangle
或Foreach
中添加另一个.EdgesIgnoringSafeArea(.all)
也不起作用。
请注意,所有这些问题都是不同的,因为它们没有使用usePageTabViewStyle()
:
他们的解决方案(添加EdgesIgnoringSafeArea(.all)
)在这种情况下不起作用。
这是我得到的最大值。。。 无论如何,我认为最初它是一个bug,值得向苹果提交反馈。
使用Xcode 12b测试
struct TestPagingStyle: View {
let colors: [Color] = [.red, .green, .blue]
var body: some View {
ZStack {
Color.black.overlay(
GeometryReader { gp in
TabView {
ForEach(0..<3, id: \.self) { index in
Text("Hello, World \(index)")
.frame(width: gp.size.width, height: gp.size.height)
.background(colors[index])
}
}
.tabViewStyle(PageTabViewStyle(indexDisplayMode: .always))
}
)
}.edgesIgnoringSafeArea(.all)
}
}