Button或NavigationLink中的AsyncImage在滚动列表时不会加载。
创始人
2025-01-10 03:30:58
0

这个问题是由于SwiftUI的异步行为造成的。在滚动列表时,SwiftUI可能会在后台删除AsyncImage,使得图片不会被加载。

解决方法是使用一个自定义的Button或NavigationLink,将其包裹在一个自定义的View中,然后在自定义View中加载AsyncImage。这样,当列表滚动时,AsyncImage将保持在视图中,并正常加载图片。

以下是示例代码:

struct CustomImageButton: View {
    let imageName: String
    let action: () -> Void
    @State private var image: UIImage?

    var body: some View {
        Button(action: action) {
            if let image = image {
                Image(uiImage: image)
                    .resizable()
                    .scaledToFit()
            } else {
                ProgressView()
            }
        }
        .onAppear {
            loadImage()
        }
    }

    private func loadImage() {
        guard let url = URL(string: imageName) else { return }
        let task = URLSession.shared.dataTask(with: url) { data, response, error in
            guard let data = data, error == nil else { return }

            DispatchQueue.main.async {
                self.image = UIImage(data: data)
            }
        }
        task.resume()
    }
}

使用这个自定义Button的代码类似于这样:

struct ContentView: View {
    let imageURLs = [
        "https://picsum.photos/200",
        "https://picsum.photos/300",
        "https://picsum.photos/400"]
    
    var body: some View {
        List(imageURLs, id: \.self) { url in
            CustomImageButton(imageName: url) {
                // Do something
            }
        }
    }
}

现在,当列表滚动时,AsyncImage将一直存在,并且图片将会正常加载。

相关内容

热门资讯

出现新变化!皇豪辅助,切实真的... 出现新变化!皇豪辅助,切实真的是有辅助app(有挂秘籍)-哔哩哔哩1、这是跨平台的皇豪辅助轻量版有透...
据统计!微信小程序破解内购,好... 据统计!微信小程序破解内购,好像是有辅助平台(有挂分析)-哔哩哔哩微信小程序破解内购脚本下载中分为三...
一直以来!胡乐辅助脚本是真的假... 您好,胡乐辅助脚本是真的假的这款游戏可以开挂的,确实是有挂的,需要了解加去威信【136704302】...
据报道!新上游辅助反杀,总是是... 据报道!新上游辅助反杀,总是是有辅助下载(有挂讲解)-哔哩哔哩1、新上游辅助反杀公共底牌简单,新上游...
据统计!微信小程序破解内购,好... 据统计!微信小程序破解内购,好像是有辅助平台(有挂详细)-哔哩哔哩1、上手简单,内置详细流程视频教学...
今年以来!广东闲来辅助软件,都... 今年以来!广东闲来辅助软件,都是存在有辅助神器(确实有挂)-哔哩哔哩亲,关键说明,广东闲来辅助软件透...
最终!心悦填大坑辅助,一贯是真... 最终!心悦填大坑辅助,一贯是真的辅助神器(有挂头条)-哔哩哔哩最终!心悦填大坑辅助,一贯是真的辅助神...
受玩家影响!情怀怎么开挂,原来... 受玩家影响!情怀怎么开挂,原来有挂辅助脚本(有挂教程)-哔哩哔哩;1、每一步都需要思考,不同水平的挑...
近日!新超圣伏虎,果然真的有辅... 近日!新超圣伏虎,果然真的有辅助app(有挂技巧)-哔哩哔哩1、首先打开新超圣伏虎辅助器下载最新版本...
出现新变化!星悦辅助器,原来存... 出现新变化!星悦辅助器,原来存在有辅助下载(的确有挂)-哔哩哔哩1、起透看视 星悦辅助器辅助软件价格...