我在Assets.xcassets中有一个大图像。如何用SwiftUI调整这张图片的大小使它变小?

我试着设置框架,但它不起作用:

Image(room.thumbnailImage)
    .frame(width: 32.0, height: 32.0)

当前回答

如果你想使用纵横比调整大小,那么你可以使用以下代码:

Image(landmark.imageName).resizable()
                .frame(width: 56.0, height: 56.0)
                .aspectRatio(CGSize(width:50, height: 50), contentMode: .fit)

其他回答

Image(room.thumbnailImage)
    .resizable()
    .frame(width: 32.0, height: 32.0,alignment: .center)

在SwiftUI . resized()属性帮助调整图像的大小。 之后我们可以定制一些尺寸。

这是山景,这是我的照片。

让我们在代码中创建一个简单的图像视图。

var body: some View {
    Image(“mountains”)
}

结果看起来不太好。

让我们先调整它的大小,用一个刻度来适应它

var body: some View {
    Image(“mountains”)
        .resizable()
        .scaledToFit()
}

现在看起来好多了。

注意,这里有空白,因为图像是垂直拍摄的,而屏幕是水平的。

不使用尺寸来填充。

图像的某些部分超出了屏幕,但它看起来比默认的没有任何比例更好。

如果你点击预览里面的图片,你会看到图片有多大。蓝色的线是图像的边界。

在SwiftUI中,使用. resized()方法来调整图像的大小。通过使用. aspectratio()并指定内容模式,您可以根据需要“适合”或“填充”图像。

例如,下面是通过拟合来调整图像大小的代码:

Image("example-image")
.resizable()
.aspectRatio(contentMode: .fit)

正如他们所说,你必须使用在SwiftUI上调整图像的大小:

调用一个图像-> image ("somename") 然后,添加-> . resized ()

现在图像可以调整大小了

接下来,你可以应用. aspectratio来适应尺寸或只是填充框架。

resized的简单用法示例:

Image("somename")
.resizable()
.frame(width: 50px, height: 50px) 

为了使图像缩放到适合当前视图,我们使用resized()修饰符,它可以调整图像的大小以适应可用的空间。

例如:

 Image("ImageName")
            .resizable()
            .aspectRatio(contentMode: .fit)
            .frame(width: 200, height: 200, alignment: .center)