SwiftUI - 多行文本 macOS
SwiftUI - Multi-Lined text macOS
如何在 SwiftUI 列表中显示具有多条换行的文本 UI 元素。
以下代码生成以下内容 Image,但我似乎无法找到使它按预期工作的方法。
let test = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Donec enim diam vulputate ut pharetra. Sed turpis tincidunt id aliquet risus feugiat in. Interdum velit laoreet id donec ultrices tincidunt arcu non. Lorem END"
var body: some View {
List(){
Text(test).lineLimit(nil)
Divider()
Text(test).fixedSize(horizontal: false, vertical: true)
Divider()
Text(test)
}
}
.lineLimit(nil)
无法工作
.fixedSize(horizontal: false, vertical: true)
也失效
您需要使用 ScrollView,而不是 List
import SwiftUI
struct ContentView: View {
let test = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Donec enim diam vulputate ut pharetra. Sed turpis tincidunt id aliquet risus feugiat in. Interdum velit laoreet id donec ultrices tincidunt arcu non. Lorem END"
var body: some View {
ScrollView {
Text(test).lineLimit(1).padding()
Text(test).lineLimit(3).padding()
Text(test).padding()
}.frame(maxWidth: 400)
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
好的,这里是针对 macOS(添加标签以及更好的可见性),不是默认的,但对于 List
也是可以实现的,如果需要 List 的性能等,并且没有任何硬编码。
测试 Xcode 11.4 / macOS 10.15.3
var body: some View {
GeometryReader { gp in
List {
Text(self.test)
.padding(.trailing)
.frame(width: gp.size.width)
Divider()
}
}
}
如何在 SwiftUI 列表中显示具有多条换行的文本 UI 元素。
以下代码生成以下内容 Image,但我似乎无法找到使它按预期工作的方法。
let test = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Donec enim diam vulputate ut pharetra. Sed turpis tincidunt id aliquet risus feugiat in. Interdum velit laoreet id donec ultrices tincidunt arcu non. Lorem END"
var body: some View {
List(){
Text(test).lineLimit(nil)
Divider()
Text(test).fixedSize(horizontal: false, vertical: true)
Divider()
Text(test)
}
}
.lineLimit(nil)
无法工作
.fixedSize(horizontal: false, vertical: true)
也失效
您需要使用 ScrollView,而不是 List
import SwiftUI
struct ContentView: View {
let test = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Donec enim diam vulputate ut pharetra. Sed turpis tincidunt id aliquet risus feugiat in. Interdum velit laoreet id donec ultrices tincidunt arcu non. Lorem END"
var body: some View {
ScrollView {
Text(test).lineLimit(1).padding()
Text(test).lineLimit(3).padding()
Text(test).padding()
}.frame(maxWidth: 400)
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
好的,这里是针对 macOS(添加标签以及更好的可见性),不是默认的,但对于 List
也是可以实现的,如果需要 List 的性能等,并且没有任何硬编码。
测试 Xcode 11.4 / macOS 10.15.3
var body: some View {
GeometryReader { gp in
List {
Text(self.test)
.padding(.trailing)
.frame(width: gp.size.width)
Divider()
}
}
}