SwiftUI上Image中的frame()是否对每个设备都有不同的大小?

时间:2019-07-01 13:02:27

标签: image frame swiftui

我在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)

    }
}

我当然有带有beta的Xcode 11,但是我没有catalina,因为我必须与Mojave一起工作,而Catalina不支持它。因此我无法通过SwiftUI预览找到任何线索。

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

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

1 个答案:

答案 0 :(得分:1)

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

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

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

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