将 url 中的 Image() 放入 HStack 内部 Button 内部 List 使其变黑

Putting an Image() from url inside an HStack inside of Button inside of List makes it go black

我一直在尝试制作一个按钮列表,当它被点击时,它会调用一些代码,我还需要一些 'thumbnails' 来配合每个按钮,所以我制作了一个 HStack每个按钮并将其全部放在列表中,现在缩略图不呈现,顺便说一句,它呈现系统图像和本地资产就好了,它只是从网络抓取的图像

您只需将其复制粘贴到 ContentView.swift 中即可重现

import SwiftUI

func artwork() -> Image
{
    let art = "https://via.placeholder.com/150"
    if let url = URL(string: art), let data = try? Data(contentsOf: url), let image = UIImage(data: data)
    {
        return Image(uiImage: image)
    }
    else
    {
        return Image(systemName: "book")
    }
}

struct ContentView: View
{
    var body: some View
    {
        List
        {
            Button(action: {...my code...})
            {
                HStack
                {
                    artwork()
                }
... some other info
            }
        }
    }
}

这个问题类似于

您只需将 .renderingMode(.original) 添加到您的 Image 中,如下所示:

func artwork() -> Image
{
    let art = "https://via.placeholder.com/150"
    if let url = URL(string: art), let data = try? Data(contentsOf: url), let image = UIImage(data: data)
    {
        return Image(uiImage: image)
    }
    else
    {
        return Image(systemName: "book")
    }
}

struct ContentView: View
{
    var body: some View
    {
        List
        {
            Button(action: {})
            {
                HStack
                {
                    artwork().renderingMode(.original)
                }
            }
        }
    }
}