带有活动指示器的视图 (ViewWithActivityIndicator)

ViewWithActivityIndicator 是一个 SwiftUI 视图,它从 URL 下载并显示图像,并在加载时显示活动指示器。

屏幕截图

N|Solid

演示应用程序:ViewWithActivityIndicatorDemo

安装

ViewWithActivityIndicator 是一个 Swift Package,您可以使用 Xcode 11 安装它

用法

ViewWithActivityIndicator 必须使用 URL 和可选的占位符图像进行初始化。

let url = ""

 ViewWithActivityIndicator(imageURL: url)

 ViewWithActivityIndicator(imageURL: url,placeHolder: "icon")

在视图中使用

import SwiftUI
import ViewWithActivityIndicator

struct ContentView : View {


    let loader: ViewLoader = ViewLoader(url: "https://picsum.photos/300")

    var body: some View {
        ViewWithActivityIndicator(placeHolder: "", showActivityIndicator: true, viewLoader: loader) {
            Image(uiImage: UIImage(data:self.loader.getData()) ?? UIImage())
        }
    } 
}

在列表中使用

import SwiftUI
import ViewWithActivityIndicator

struct ContentView : View {
let urls: [String]
let loader: ViewLoader = ViewLoader(url: "https://picsum.photos/300")

var body: some View {
List(urls, id: \.self) { url in
HStack {
ViewWithActivityIndicator(imageURL: url)
.frame(width: 100.0, height: 100.0)
Text("\(url)")
}
}
}
}

ViewLoaders 允许根据给定的字符串数组创建多个加载器

@available(iOS 13.0, *)
public struct ViewLoaders {
    var loaders: [ViewLoader] = []
    init(urls: [String]) {
        for url in urls {
            loaders.append(ViewLoader(url: url))
        }
    }
}