尝试设置具有多个多行文本的可滚动视图,但是当应用程序为 运行 时,滚动时 运行ning 非常慢
Trying to set up a scrollable view with multiple multiline of text but when app is run, it is running very slow when scrolling
我正在尝试设置一个说明视图,该视图将通过文本向 运行 我的应用程序显示说明(对于那些不太了解其工作原理并需要逐步说明的人)。
我写了下面的代码,但是当我 运行 打开这个特定视图时,它 运行 非常慢,滚动非常非常慢,直到它什么也没做, 就像没有崩溃的崩溃。
我的代码:
NavigationView {
ScrollView {
LazyVStack(alignment: .leading) {
padding()
Text("Main Screen")
.font(.title2)
.foregroundColor(.purple)
Text("This is the description text for the Main Screen")
.padding(.all)
.font(.title3)
.foregroundColor(.pink)
}.padding(.leading)
LazyVStack(alignment: .leading) {
Text("Log In")
.font(.title2)
.foregroundColor(.purple)
Text("This is the description text for the Login")
.padding(.all)
.font(.title3)
.foregroundColor(.pink)
padding()
}.padding(.leading)
LazyVStack(alignment: .leading) {
Text("Workout")
.font(.title2)
.foregroundColor(.purple)
Text("This is the description text for Workouts.")
.padding(.all)
.font(.title3)
.foregroundColor(.pink)
padding()
}.padding(.leading)
LazyVStack(alignment: .leading) {
Text("Logout")
.font(.title2)
.foregroundColor(.purple)
Text("This is the description text for Logout")
.padding(.all)
.font(.title3)
.foregroundColor(.pink)
padding()
}
.padding(.leading)
LazyVStack(alignment: .leading) {
Text("Settings")
.font(.title2)
.foregroundColor(.purple)
Text("This is the description text for Settings")
.padding(.all)
.font(.title3)
.foregroundColor(.pink)
padding()
}
.padding(.leading)
}
.navigationTitle("Instructions")
}
我的代码 'description text' 中的代码比上面的多很多,每个新类别或标题都包含一个新的 LazyVStack 块和一组 2 个文本,如上所述。整个视图应该由 8-10 个 LazyVStack 块组成。
下面是我正在尝试做的事情的图表:
基本上,我只是想创建一个可滚动的视图,其中只包含带有标题的文本和标题下方的描述。最多将有 10 个标题和描述 - 所有文本。
知道吗,我做错了什么以及如何解决这个问题?
我认为问题出在您的 padding()
上。尝试删除它们。
您应该像这样在您的视图中添加填充:
Text("content")
.padding()
如您在 documentation 中所见,padding(_)
是一个视图修饰符,应该在 View
.
上调用
要在您的组件之间添加额外的 space,您可以执行以下任一操作:
1- 通过像这样传递 spacing
来设置 LazyVStack
组件之间的 space:
LazyVStack(alignment: .leading, spacing: 32) { // <- spacing
Text("Main Screen")
.font(.title2)
.foregroundColor(.purple)
Text("This is the description text for the Main Screen")
.padding(.all)
.font(.title3)
.foregroundColor(.pink)
}.padding(.leading)
2- 或使用 padding(_, _)
修饰符设置顶部填充:
LazyVStack(alignment: .leading) {
Text("Main Screen")
.font(.title2)
.foregroundColor(.purple)
.padiing(.top, 32) // <-- padding
Text("This is the description text for the Main Screen")
.padding(.all)
.font(.title3)
.foregroundColor(.pink)
.padding(.top, 32) // <-- padding
}.padding(.leading)
我正在尝试设置一个说明视图,该视图将通过文本向 运行 我的应用程序显示说明(对于那些不太了解其工作原理并需要逐步说明的人)。
我写了下面的代码,但是当我 运行 打开这个特定视图时,它 运行 非常慢,滚动非常非常慢,直到它什么也没做, 就像没有崩溃的崩溃。
我的代码:
NavigationView {
ScrollView {
LazyVStack(alignment: .leading) {
padding()
Text("Main Screen")
.font(.title2)
.foregroundColor(.purple)
Text("This is the description text for the Main Screen")
.padding(.all)
.font(.title3)
.foregroundColor(.pink)
}.padding(.leading)
LazyVStack(alignment: .leading) {
Text("Log In")
.font(.title2)
.foregroundColor(.purple)
Text("This is the description text for the Login")
.padding(.all)
.font(.title3)
.foregroundColor(.pink)
padding()
}.padding(.leading)
LazyVStack(alignment: .leading) {
Text("Workout")
.font(.title2)
.foregroundColor(.purple)
Text("This is the description text for Workouts.")
.padding(.all)
.font(.title3)
.foregroundColor(.pink)
padding()
}.padding(.leading)
LazyVStack(alignment: .leading) {
Text("Logout")
.font(.title2)
.foregroundColor(.purple)
Text("This is the description text for Logout")
.padding(.all)
.font(.title3)
.foregroundColor(.pink)
padding()
}
.padding(.leading)
LazyVStack(alignment: .leading) {
Text("Settings")
.font(.title2)
.foregroundColor(.purple)
Text("This is the description text for Settings")
.padding(.all)
.font(.title3)
.foregroundColor(.pink)
padding()
}
.padding(.leading)
}
.navigationTitle("Instructions")
}
我的代码 'description text' 中的代码比上面的多很多,每个新类别或标题都包含一个新的 LazyVStack 块和一组 2 个文本,如上所述。整个视图应该由 8-10 个 LazyVStack 块组成。
下面是我正在尝试做的事情的图表:
基本上,我只是想创建一个可滚动的视图,其中只包含带有标题的文本和标题下方的描述。最多将有 10 个标题和描述 - 所有文本。
知道吗,我做错了什么以及如何解决这个问题?
我认为问题出在您的 padding()
上。尝试删除它们。
您应该像这样在您的视图中添加填充:
Text("content")
.padding()
如您在 documentation 中所见,padding(_)
是一个视图修饰符,应该在 View
.
要在您的组件之间添加额外的 space,您可以执行以下任一操作:
1- 通过像这样传递 spacing
来设置 LazyVStack
组件之间的 space:
LazyVStack(alignment: .leading, spacing: 32) { // <- spacing
Text("Main Screen")
.font(.title2)
.foregroundColor(.purple)
Text("This is the description text for the Main Screen")
.padding(.all)
.font(.title3)
.foregroundColor(.pink)
}.padding(.leading)
2- 或使用 padding(_, _)
修饰符设置顶部填充:
LazyVStack(alignment: .leading) {
Text("Main Screen")
.font(.title2)
.foregroundColor(.purple)
.padiing(.top, 32) // <-- padding
Text("This is the description text for the Main Screen")
.padding(.all)
.font(.title3)
.foregroundColor(.pink)
.padding(.top, 32) // <-- padding
}.padding(.leading)