在 SwiftUI 中像素和点之间转换的推荐方法是什么?

rea*_*alh 0 pixel-density swiftui

我想在 SwiftUI 中显示二维码。代码生成为CGImagevia CIImage。我不想将其缩放到可用的完整尺寸,因为如果缩放因子不是整数,则 QR 模块之间可能存在模糊边界。所以我需要一种在 iOS 显示点GeometryReader和物理点之间进行转换的方法。我发现了一些关于从 a 读取屏幕比例的搜索“点击” UIView,但没有找到如何在 SwiftUI 中获取该比例。

还有一些点击只是说所有现代 iPhone 上的比例都是 3,而且由于我的目标是 iOS 15+,我想我可以放心地假设它现在始终是 3,但如果苹果将来推出更高的像素密度怎么办? ?

rob*_*off 5

您可以displayScale使用Environment属性包装器。

\n
struct ContentView: View {\n    @Environment(\\.displayScale) var displayScale\n\n    var body: some View {\n        Text("display scale: \\(displayScale)")\n    }\n}\n
Run Code Online (Sandbox Code Playgroud)\n

请参阅EnvironmentValues以了解 SwiftUI 在 \xe2\x80\x9cenvironment\xe2\x80\x9d 中还提供了哪些内容。

\n