SwiftUI 的 Image 视图能够以不同的方式进行缩放,就像 UIImageView 的 content mode 一样。
1.默认
默认情况下,图像视图会根据其内容自动调整大小,这可能会使它们超出屏幕范围。
Image("ba_xian_tai")
效果预览:

如果添加 resizable() 修饰符,则图像将自动调整大小,以填充所有可用空间:
Image("ba_xian_tai")
.resizable()
效果预览:
然而,这也可能导致图像的原始纵横比失真,因为它将在所有维度上被拉伸任意量,以使其填充空间。
2. .fill 和 .fit
如果要保持其纵横比,应使用 .fill 或 .fit添加一个aspectRatio()修饰符,如下所示:
2.1 fill
Image("ba_xian_tai")
.resizable()
.aspectRatio(contentMode: .fill)
效果预览:

2.2 fit
Image("ba_xian_tai")
.resizable()
.aspectRatio(contentMode: .fit)
效果预览:
