如何使用 SwiftUI 获取文本宽度?
Posted
技术标签:
【中文标题】如何使用 SwiftUI 获取文本宽度?【英文标题】:How to get Text width with SwiftUI? 【发布时间】:2020-03-27 14:55:26 【问题描述】:我想用一个与文本宽度相同的矩形在标题下划线。
首先我创建一个带下划线的文本,如下所示:
struct Title: View
var body: some View
VStack
Text("Statistics")
Rectangle()
.foregroundColor(.red)
.frame(height: (5.0))
所以我得到以下结果:
现在我想得到这个结果:
所以我想知道是否可以通过编写如下内容来绑定文本宽度并将其应用于矩形:
struct Title: View
var body: some View
VStack
Text("Statistics")
Rectangle()
.foregroundColor(.red)
.frame(width: Text.width, height: (5.0))
这样做,我可以更改文本,它会以正确的宽度动态下划线。
我尝试了很多选项,但找不到方法。我还检查了this question,但这似乎不是同一个问题。
【问题讨论】:
【参考方案1】:只需指定容器具有固定大小,它会紧贴内容,例如
var body: some View
VStack
Text("Statistics")
Rectangle()
.foregroundColor(.red)
.frame(height: (5.0))
.fixedSize() // << here !!
【讨论】:
以上是关于如何使用 SwiftUI 获取文本宽度?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 SwiftUI 中嵌入 ForEach 的 HStack 中设置相对宽度?
当文本()对于设备的宽度而言太长时,如何在 SwiftUI 中进行换行?