swift - 如何使用 SwiftUI 获取 ScrollView 的动态文本高度
问题描述
这给了我正确的动态文本高度
import SwiftUI
struct ContentView : View {
var body: some View {
List {
Text("This is some very long text can we can see scrolls past two lines ").lineLimit(nil)
}
}
}
#if DEBUG
struct ContentView_Previews : PreviewProvider {
static var previews: some View {
ContentView()
}
}
#endif
但是以下内容会截断文本。我如何获得以下动态高度?
import SwiftUI
struct ContentView : View {
var body: some View {
GeometryReader { reader in
ScrollView {
Text("This is some very long text can we can see scrolls past two lines ")
.lineLimit(nil)
.frame(width: reader.size.width)
}
}
}
}
#if DEBUG
struct ContentView_Previews : PreviewProvider {
static var previews: some View {
ContentView()
}
}
#endif
解决方案
您需要使用fixedSize
修饰符防止截断。在你的情况下,它就像:
Text("This is some very long text can we can see scrolls past two lines ")
.lineLimit(nil)
.fixedSize(horizontal: false, vertical: true) //** It keeps 'width size' and expands 'height size'
.frame(width: reader.size.width)
推荐阅读
- sql - 在使用 SQL Server 进行增量加载时在单独的表中捕获更新和删除记录
- tabulator - 函数 table.setColumnLayout(columnSettings); 不适合我
- powershell - 如何读取具有两个数据集(即两个不同的标题和列)的 CSV 文件
- flutter - Flutter SizedBox 与 LimitedBox
- flutter - 如何更改 Flutter 中子树的文本颜色?
- javascript - 我究竟做错了什么?类型错误:这是未定义的
- python - Python 3 的帮助功能中的西里尔字母在 Powershell Windows 10 中不起作用
- ios - 使用 willDisplay 单元格方法向上滚动 tableView 时如何从 API 获取数据并更新单元格和部分?
- python - QGraphicsScene 鼠标事件
- c - UDP 服务器无法发送消息