如何在 SwiftUI 中的 Canvas 内的文本下方填充矩形

问题描述 投票:0回答:1

我正在尝试在文本下方绘制带有填充和插入矩形的文本,该文本与

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))
        }
    }
}
swiftui canvas text cgrect
1个回答
0
投票

也许这是一个更简单的方法:

var body : some View {
    Text("Some text")
        .foregroundColor(.black)
        .background {
            Color.red
                .padding(.horizontal, -4)
                .padding(.vertical, -2)
        }
}

如果您将

Canvas
用于其他绘图目的,那么您可以简单地将文本应用为
.overlay
,或许可以使用
.position
.offset
来精确定位它。

© www.soinside.com 2019 - 2024. All rights reserved.