我正在尝试在文本下方绘制带有填充和插入矩形的文本,该文本与
Canvas
中的 SwiftUI
内的文本大小相匹配,但我无法弄清楚如何获取 Text
的尺寸查看。
struct ContentView: View {
var body : some View {
Canvas { context,size in
let TEXT = Text("Some text").foregroundColor(.black)
// context.fill(TEXT.boundingRect.insetBy(dx: -4, dy: -2), with: .color(.red)) // error: no boundingRect
context.draw(TEXT, at: CGPoint(x: size.width/2,y: size.height/2))
}
}
}
也许这是一个更简单的方法:
var body : some View {
Text("Some text")
.foregroundColor(.black)
.background {
Color.red
.padding(.horizontal, -4)
.padding(.vertical, -2)
}
}
如果您将
Canvas
用于其他绘图目的,那么您可以简单地将文本应用为 .overlay
,或许可以使用 .position
或 .offset
来精确定位它。