加载本地图片
可以加载资源包中的图片文件和系统内置的图标(SF Symbols)
- 使用
.resizable()可使图片不超出屏幕或指定区域 - SF Symbols 内置图标自带的颜色,可以用
.renderingMode(.original).来渲染
var body: some View {
VStack {
Image(systemName: "swift")
.resizable()
.renderingMode(.original)
Image("wechat") // 放在资源包中的图片
}
}
加载网络图片
1. 展示默认图片
下载图片时,默认会显示一个灰色的占位视图,下载完成后,会自动根据图片原始尺寸在屏幕上展示。
static let url = "https://images.pexels.com/photos/3652898/pexels-photo-3652898.jpeg?auto=compress&cs=tinysrgb&dpr=3&h=750&w=1260"
var body: some View {
AsyncImage(url: URL(string: BasicAsyncImage.url))
}
2. 改变图片尺寸, 修改默认占位视图
AsyncImage(url: URL(string: BasicAsyncImage.url)) { image in
image
.resizable() // 适应屏幕尺寸
.scaledToFit()
} placeholder: {
Color.gray.opacity(0.3)
.overlay(ProgressView())
}
.frame(width: 200, height: 200)
.cornerRadius(20)
.overlay(RoundedRectangle(cornerRadius: 20).stroke(.purple, lineWidth: 1))