首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SwiftUI列表不显示图像

SwiftUI列表不显示图像
EN

Stack Overflow用户
提问于 2020-07-07 07:42:42
回答 1查看 385关注 0票数 0

我已经创建了以下结构,下面是我希望在SwiftUI中的列表中使用的数组的一个简短示例:

代码语言:javascript
复制
import Foundation
import SwiftUI

struct Rune: Identifiable {
    var runeName: String
    var runeImage: String
    var runeDescription: String
    let id = UUID()
}

let runesArray = [Rune(runeName: "Fehu", runeImage: String(("Fehu.png")), runeDescription: "(Description Goes Here"),
                  Rune(runeName: "Uruz", runeImage: String(("Uruz.png")), runeDescription: "(Description Goes Here"),
                  Rune(runeName: "Thurisaz", runeImage: String(("Thurisaz.png")), runeDescription: "(Description Goes Here"]

当我使用以下代码时,我的图像没有显示,但当我单击该行并转到我的DetailView时,text runeName text runeDescription按预期显示,但我找不出原因:

ContentView:

代码语言:javascript
复制
import SwiftUI

struct ContentView: View {
    var body: some View {
        NavigationView {
            List(runesArray) { rune in
                NavigationLink(destination: DetailView(rune: rune)) {
                    RuneRow(rune: rune)
                }
            }
            .navigationBarTitle("Rune Companion")
        }
    }
}

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}

struct RuneRow: View {
    
    let rune: Rune
    
    var body: some View {
        HStack {
            Image(rune.runeImage)
                .resizable()
                .aspectRatio(contentMode: .fit)
                .frame(width: 60, height: 60)
            Spacer()
            Text(rune.runeName)
                .font(.title)
                .fontWeight(.bold)
            Spacer()
        }
    }
}

DetailView:

代码语言:javascript
复制
import SwiftUI

struct DetailView: View {
    let rune: Rune
    var body: some View {
        NavigationView {
            VStack {
                Spacer()
                Image(rune.runeImage)
                    .resizable()
                    .aspectRatio(contentMode: .fill)
                    .frame(width: 200, height: 200)
                Spacer()
                Text(rune.runeDescription)
                    .padding(.horizontal)
                    
                Spacer()
            }
            .navigationBarTitle(rune.runeName)
            .navigationBarTitleDisplayMode(.large)
            
        }
    }
}

struct DetailView_Previews: PreviewProvider {
    static var previews: some View {
        DetailView(rune: runesArray[0])
    }
}

当我将Image(rune.runeImage)更改为Image("Fehu")时,Fehu的图像确实出现了,但是像它应该做的那样填充了所有三行,显示我的图像可以成功加载。你知道我做错了什么吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-07-07 07:47:38

您不需要为图像指定扩展名(.png)。

替换:

代码语言:javascript
复制
runeImage: String(("Fehu.png"))

通过以下方式:

代码语言:javascript
复制
runeImage: "Fehu"

runesArray中创建梯段时。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62766037

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档