我正在尝试使用滚动视图制作通向目标视图的导航视图,其中目标视图的导航标题将向内联显示模式设置动画,或者至少在导航栏本身后面滚动。
基本上我试图复制标准音乐应用程序的行为,特别是当你从图书馆转到歌曲时。
那里有源视图(库),它有自己的标题,在滚动时动画进入内联显示模式。当您点击歌曲时,您还会获得带有新标题(歌曲)的列表,该列表也会在滚动时以动画方式进入内联显示模式。
所以我有主 NavigationView 和 NavigationBarTitle。我使用自己的 NavigationBarTitle 和一些长长的内容列表移至destinationView。在滚动时,主 Navigation 视图的 NavigationBarTitle 变为内联显示模式,但目标视图的 NavigationBar 表现得很奇怪:它基本上是一个没有背景和动画的覆盖。
而且,如果您将目标视图的 NavigationBarTitle 全部删除,只会让事情变得更糟。似乎它添加了另一个透明的 NavigationBar,其中没有任何内容。
还尝试为导航栏添加背景,查看文档,但没有找到解决方案。
不确定我是否做错了什么,或者它只是 SwiftUI 或 Xcode 的 beta 错误。
import UIKit
struct ContentView: View {
var body: some View {
NavigationView{
List(0..<20) { item in
NavigationLink(destination: DetailedView()) {
Text("Next view")
}
}
.navigationBarTitle("Source View")
}
}
}
struct DetailedView: View {
var body: some View {
List(0...25) { number in
Text("This is \(number)'th row")
}
.navigationBarTitle(Text("Destination View"))
// comment out line above to see empty frame of navigation bar
}
}