背景/高亮效果是带有
.regularMaterial
的圆角矩形。
我尝试过使用
AttributedString
并设置 .backgroundColor
但这不允许我使用材质,也不能将边缘变圆。
我尝试使用有关字体的信息来计算这个“精确”/“粘性”边框,但是
Text
有时会不可预测地自动连字符长单词,因此我的计算变得混乱。我现在只是禁用了连字符,但我想知道是否有人找到了一种方法来做到这一点。
我想过单独渲染每一行,但再次
Text
并没有告诉我换行符将在文本中的位置,所以我没有尝试这种方法。
此处显示了使用这些概念的代码示例:
struct ContentView: View {
var body: some View {
Text("Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s,")
.font(.title)
.padding() // Add padding around the text
.background(Material.regular, in: RoundedRectangle(cornerRadius: 10)) // Apply rounded material background
.clipShape(RoundedRectangle(cornerRadius: 10)) // Ensure the clipping matches the rounded corners
.padding() // Additional outer padding for aesthetics
}
}