假设我有一个名为:的文本This
。我想弄清楚被调用的文本的宽度,This
以便我可以为另一个视图的框架分配一个宽度。我该怎么做?
struct BadgeTextView: View {
var text: String
var body: some View {
Rectangle()
.fill(Color.red)
.cornerRadius(3)
.frame(width: text.???, height: <#T##CGFloat?#>, alignment: <#T##Alignment#>)
}
}
Run Code Online (Sandbox Code Playgroud)
Dav*_*pin 10
这个扩展String
应该建立在 Sweeper 的建议之上,让你获得String
给定某种字体的宽度:
extension String {
func widthOfString(usingFont font: UIFont) -> CGFloat {
let fontAttributes = [NSAttributedString.Key.font: font]
let size = self.size(withAttributes: fontAttributes)
return size.width
}
}
Run Code Online (Sandbox Code Playgroud)
这将像这样使用: let width = "SomeString".widthOfString(usingFont: UIFont.systemFont(ofSize: 17, weight: .bold))
归档时间: |
|
查看次数: |
1573 次 |
最近记录: |