CachedAsyncImage
是具有缓存功能的 AsyncImage
。
CachedAsyncImage
具有与 AsyncImage
完全相同的 API 和行为,所以您只需要将
AsyncImage(url: logoURL)
改为
CachedAsyncImage(url: logoURL)
除了 AsyncImage
的初始化器之外,您还可以指定要使用的缓存(默认使用 URLCache.shared
),以及使用 URLRequest
代替 URL
。
CachedAsyncImage(urlRequest: logoURLRequest, urlCache: .imageCache)
// URLCache+imageCache.swift
extension URLCache {
static let imageCache = URLCache(memoryCapacity: 512_000_000, diskCapacity: 10_000_000_000)
}
请记住,设置缓存时,响应(在本例中是我们的图像)的大小不得超过磁盘缓存的约 5%(请参阅此讨论)。
https://github.com/lorenzofiamingo/swiftui-cached-async-image
)并单击 Next(下一步)。