这是我尝试开始工作的示例:
struct ContentView: View {
let links = ["Item 1", "Item 2", "Item 3", "Item 4"]
var body: some View {
NavigationView {
ScrollView {
Text("My Title")
List(links, id: \.self) {
link in
NavigationLink(destination: TestView()) {
Text(link)
.padding(.vertical, 4)
.frame(maxWidth: .infinity, alignment: .leading)
}
}
.frame(height: 178)
Text("Some more content here")
}
}
}
}
注意:TestView 只是一些带有文本 hello world 的视图。
我正在尝试复制 Apple Music 的导航风格。我尝试将 aButton
放入,NavigationLink
但在文本上点击它不会改变视图,而且我无法找到一种方法来可靠地同时在点击时改变行的颜色。同样在某种方法中,我设法让它工作,但是颜色动画的方式是不同的,即它从 A 褪色到 B,超过约 100 毫秒,而我想要实现的是立即在状态之间制作动画(比如在苹果音乐)。
我目前的方法是使用 a List
,将其放入NavigationLinks
其中,然后通过给它一个高度来切断整个视图。这样我就可以把它和其他内容放在一起。
它现在工作正常,但是每当我单击一行并返回时,该行仍然突出显示,而它不应该突出显示。有没有办法让它在以某种方式返回屏幕时取消选择?
我认为这个错误是由List
a 内部引起的ScrollView
,因为当我删除时ScrollView
,列表正常工作,并且没有这个突出显示错误。但我需要能够将我的内容放在列表中,并且我不打算让列表占据整个屏幕。
有没有办法用这种方法修复这个错误?我也愿意在不使用List
.