如何使 NavigationLink 中的数据可滚动 swiftui
How to make data in NavigationLink scrollable swiftui
我是 swift 的初学者,正在尝试创建具有两个屏幕的应用程序。带有数据列表的屏幕 A。当用户 select 从列表中选择项目时,项目详细信息将显示在屏幕 B 中。仅此而已。
我使用了下面的代码。一切正常。当列表中的 i select 项时,屏幕 B 显示数据。
但问题是屏幕 B 中的数据不可滚动。
我在这里使用 NavigationLink 来显示数据。尝试添加 ScrollView 但不起作用。
请告诉我需要进行哪些更改才能使 NavigationLink 中的内容可滚动。
import SwiftUI
struct ContentView: View {
var body: some View {
NavigationView() {
VStack{
List(modelDisease) { myList in
ScrollView(.vertical,showsIndicators: true){
VStack{
NavigationLink(
destination: Text( myList.data) .padding()) {
HStack {
Text("\(myList.idValue)").frame(width: 50, height: 10, alignment: .leading)
VStack {
Text(myList.name)
}
}.font(.title)
}
}
}
}
}.navigationBarTitle("Ayurvedic Remedies")
}
}
}
正如评论中所建议的,您可能希望您的目的地是它自己的观点。现在,您有一个 List
和一个 ScrollView
,这是多余的,因此您可能希望 ScrollView
作为目标的一部分。它可能看起来像这样(基于您的原始代码,缺少 modelDisease
类型和声明):
struct ContentView: View {
//modelDisease must be declared here
var body: some View {
NavigationView {
List(modelDisease) { myList in
NavigationLink(
destination: DestinationView(data: myList.data)) {
HStack {
Text("\(myList.idValue)").frame(width: 50, height: 10, alignment: .leading)
VStack {
Text(myList.name)
}
}.font(.title)
}
}
}.navigationBarTitle("Ayurvedic Remedies")
}
}
struct DestinationView : View {
var data : String
var body: some View {
ScrollView {
Text(data)
}.padding()
}
}
我是 swift 的初学者,正在尝试创建具有两个屏幕的应用程序。带有数据列表的屏幕 A。当用户 select 从列表中选择项目时,项目详细信息将显示在屏幕 B 中。仅此而已。
我使用了下面的代码。一切正常。当列表中的 i select 项时,屏幕 B 显示数据。 但问题是屏幕 B 中的数据不可滚动。
我在这里使用 NavigationLink 来显示数据。尝试添加 ScrollView 但不起作用。
请告诉我需要进行哪些更改才能使 NavigationLink 中的内容可滚动。
import SwiftUI
struct ContentView: View {
var body: some View {
NavigationView() {
VStack{
List(modelDisease) { myList in
ScrollView(.vertical,showsIndicators: true){
VStack{
NavigationLink(
destination: Text( myList.data) .padding()) {
HStack {
Text("\(myList.idValue)").frame(width: 50, height: 10, alignment: .leading)
VStack {
Text(myList.name)
}
}.font(.title)
}
}
}
}
}.navigationBarTitle("Ayurvedic Remedies")
}
}
}
正如评论中所建议的,您可能希望您的目的地是它自己的观点。现在,您有一个 List
和一个 ScrollView
,这是多余的,因此您可能希望 ScrollView
作为目标的一部分。它可能看起来像这样(基于您的原始代码,缺少 modelDisease
类型和声明):
struct ContentView: View {
//modelDisease must be declared here
var body: some View {
NavigationView {
List(modelDisease) { myList in
NavigationLink(
destination: DestinationView(data: myList.data)) {
HStack {
Text("\(myList.idValue)").frame(width: 50, height: 10, alignment: .leading)
VStack {
Text(myList.name)
}
}.font(.title)
}
}
}.navigationBarTitle("Ayurvedic Remedies")
}
}
struct DestinationView : View {
var data : String
var body: some View {
ScrollView {
Text(data)
}.padding()
}
}