SwiftUI:当我设置背景颜色时,Navbartitel 在滚动时不会移到顶部
Posted
技术标签:
【中文标题】SwiftUI:当我设置背景颜色时,Navbartitel 在滚动时不会移到顶部【英文标题】:SwiftUI: Navbartitel doesn't move to top when scrolling when I set a background color 【发布时间】:2020-10-20 12:56:43 【问题描述】:在我当前的项目中,我想使用以下代码设置背景颜色:
NavigationView
ZStack
Color(color)
GeometryReader geometry in
VStack
ScrollView(showsIndicators: false)
VStack(spacing: 250)
…
NavigationLink(destination: TrainingView(übungListVM: übungListVM, daten: daten))
Text("startString")
.styleButton()
.navigationBarTitle("Workout", displayMode: .automatic)
.navigationBarItems(trailing:
Button(action:
self.showSettings.toggle()
)
Text("Settings")
问题是,当我滚动 Navtitel 时,左上角的大字体保持不变,但它应该移到顶部(正常行为)。当我注释掉“颜色(颜色)”时,一切都按预期工作。有什么想法吗?
谢谢
【问题讨论】:
【参考方案1】:这是知道 NavigationView
的行为 - List/Form/ScrollView
应该在顶部导航栏显示模式自动更改。
您可以使用子视图的背景,例如(使用 Xcode 12 / ios 14 测试)
NavigationView
ZStack
GeometryReader geometry in
VStack(spacing: 0)
ScrollView(showsIndicators: false)
VStack(spacing: 250)
ForEach(0..<100)
Text("Item \($0)")
.frame(maxWidth: .infinity)
.background(
Color.yellow
)
NavigationLink(destination: Text("TrainingView"))
Text("startString")
.frame(maxWidth: .infinity)
.background(
Color.yellow
)
【讨论】:
谢谢,但我不适合我的情况。我可以设置滚动视图的背景,但我无法设置 NavigationLink 周围空间的背景。以上是关于SwiftUI:当我设置背景颜色时,Navbartitel 在滚动时不会移到顶部的主要内容,如果未能解决你的问题,请参考以下文章
SwiftUI Textfield - 如何在编辑模式下设置文本字段的背景颜色以清除