【发布时间】:2020-07-05 16:59:37
【问题描述】:
我在NavigationView 中有两个滚动视图。我希望两个 ScrollView 都继承 onAppear 修饰符中提到的颜色。
但是,当我导航到第二个 ScrollView 并返回到第一个 ScrollView 时,第一个视图会继承第二个 ScrollView 颜色。
struct ScrollView1: View {
var body: some View {
NavigationView {
ScrollView {
NavigationLink(destination: ScrollView2()) {
Text("First View").padding()
}.frame(maxWidth: .infinity)
}.navigationBarTitle("First")
.onAppear {
UIScrollView.appearance().backgroundColor = UIColor.green
}
}
}
}
struct ScrollView2: View {
var body: some View {
ScrollView {
Text("Second View").frame(maxWidth: .infinity)
}
.onAppear {
UIScrollView.appearance().backgroundColor = UIColor.gray
}
}
}
有谁知道我的第一个 ScrollView 将如何始终继承绿色和第二个灰色?
通过包裹在 ZStack 中添加 ScrollView 颜色不会在滚动时将 NavigationBar 从大折叠到内联。
是否有任何其他解决方案可以同时实现这两者,即保留 navigationBar 反弹行为以及 ScrollView 颜色。
【问题讨论】:
标签: swiftui swiftui-scrollview