SwiftUI 上 Image 中的 frame() 对于每个设备有不同的大小吗?

will frame() in Image on SwiftUI has different size for each devices?

我有一个在 swiftUI 中使用图像查看的代码,我想知道 frame() 函数是否会为每个设备生成不同的大小(例如 iPhone 8、Xs、Xs+ 等)

struct CircleImage : View {
    var body: some View {
        Image("jorge")
            .resizable()
            .frame(width: 100, height: 100)
            .clipShape(Circle())
            .overlay(
                Circle().stroke(Color.white, lineWidth: 4))
            .shadow(radius: 10)

    }
}

我当然有 Xcode 11 和 Beta 版,但我没有 Catalina,因为我必须使用 Mojave 进行工作,而 Catalina 不支持它。所以我找不到任何关于 SwiftUI Preview 的线索。

我还尝试使用多个模拟器(使用 8 和 Xs+)查看上面的代码,我看到图像似乎具有相同的大小,但我不确定。

如果尺寸相同,屏幕的标准尺寸是多少?如果没有,我如何找到每个屏幕的标准?

我不确定我是否理解你的问题,但我会尽力回答。当您指定一个框架(宽度:100,高度:100)时,SwiftUI 会将其设置为 100x100 点。无论哪种设备。如果您想适应设备的可用 space,请查看我在另一个问题中发布的示例:

此外,这里是获取当前设备屏幕尺寸的文档:

屏幕的边界矩形,以磅为单位: https://developer.apple.com/documentation/uikit/uiscreen/1617838-bounds

物理屏幕的边界矩形,以像素为单位。 https://developer.apple.com/documentation/uikit/uiscreen/1617810-nativebounds