我在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 +)查看上述代码,我看到图像的大小似乎相同,但是我不确定。
如果尺寸相同,屏幕的标准尺寸是多少?如果没有,如何找到每个屏幕的标准?
答案 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