我正在使用以下代码通过SwiftUI在屏幕上显示大量数字:
return GeometryReader() { geometry in
Text(series.split(separator: ",")[self.calculator.pointsIndex])
.font(Font.system(size: round(geometry.size.height * 1.5),
weight: .light,
design: .rounded))
.minimumScaleFactor(0.2)
.scaledToFit()
.allowsTightening(true)
.background(Color.red.opacity(0.25))
}
在模拟器上,它看起来像这样:
在设备上看起来像这样:
我一直在绞尽脑汁想弄清楚为什么设备上的数字这么少。有什么想法吗?
答案 0 :(得分:0)
此round(geometry.size.height * UIScreen.main.scale * 1.2
在设备(和不同设备)和模拟器上给出不同的结果。
当需要将文本缩放到可用父空间时,我更喜欢使用以下组合
Text("any text here")
.font(.system(size: 1000))
.minimumScaleFactor(0.01)
.lineLimit(1)
因此您可以尝试以下修改您的代码
return GeometryReader { _ in // just to consume all available space
Text(series.split(separator: ",")[self.calculator.pointsIndex])
.font(.system(size: 1000, weight: .light, design: .rounded))
.minimumScaleFactor(0.01)
.lineLimit(1)
.background(Color.red.opacity(0.25))
}