Ios 在应用程序的捆绑包中找不到图像问题

Ios 在应用程序的捆绑包中找不到图像问题,ios,swift,swiftui,Ios,Swift,Swiftui,我在Assets.xcsets中有以下所有图像,如下面的屏幕截图所示 但是当我在视图中引用它时,它不能显示图像 Image("hTeams/\(game.homeTeam)") .resizable() .aspectRatio(contentMode: .fit) .frame(width: 215, height: 192) 我不知道为什么 有人知道我需要做什么才能解决这个问题吗 使用Contents.json文件存储和引用资产。它们包含像这样

我在Assets.xcsets中有以下所有图像,如下面的屏幕截图所示

但是当我在视图中引用它时,它不能显示图像

Image("hTeams/\(game.homeTeam)")
    .resizable()
    .aspectRatio(contentMode: .fit)
    .frame(width: 215, height: 192)
我不知道为什么


有人知道我需要做什么才能解决这个问题吗

使用Contents.json文件存储和引用资产。它们包含像这样存储的图像信息

 {
  "images" : [
    {
      "filename" : "Test.jpg",
      "idiom" : "universal",
      "scale" : "1x"
    },
    {
      "idiom" : "universal",
      "scale" : "2x"
    },
    {
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
    "author" : "xcode",
    "version" : 1
  }
}
如果您看到此文件,即使在某个文件夹中,也没有对其父目录的任何引用

Image("Test")
.resizable()
.aspectRatio(contentMode: .fit)
.frame(width: 215, height: 192)
因此,访问资产的正确且唯一的方法是在不引用容器目录的情况下访问它,就像您通常对存储在根目录中的任何其他资产所做的那样

Image("Test")
.resizable()
.aspectRatio(contentMode: .fit)
.frame(width: 215, height: 192)

所以我自己就能够弄明白,正如Prasad所说的,当文件夹处于活动状态时,使用图像通常所在的资产文件夹将无法工作

您需要创建自己的捆绑包,如下所示:

如何创建捆绑包
  • 在finder中创建文件夹
  • 将文件添加到文件夹(如果需要,甚至子文件夹)
  • 重命名文件夹,使其扩展名为.bundle(例如,“新文件夹”->“BundleName.bundle”)
  • PS:您可以随时右键单击文件夹并点击“显示软件包内容”,以添加、删除或修改任何文件

    如何将bundle添加到Xcode
  • 将它拖到Xcode中
  • 如何使用该捆绑包
  • Image(uiImage:uiImage(名为:“bundleNameCreatedBove.bundle”))

  • 这样,您就可以拥有任意多的文件夹和子文件夹。

    只需尝试
    Image(game.homeTeam)
    。assert中的文件夹仅具有开发结构意义。@Asperi我需要一个额外的文件夹,因为我还有一个名为aTeams的文件夹,其中保存的图像与另一种方式反映的图像完全相同,表示它们是访问者。我同意你的看法,但也认为这是Apple的一个“限制”,对于任何工作正常的web开发,他们需要允许开发人员放置文件夹并将其作为参考