【问题标题】:Image from folder not appearing文件夹中的图像未出现
【发布时间】:2017-02-14 21:02:50
【问题描述】:

刚开始在 XCode 中使用 Swift,我已经浏览了许多教程。不幸的是,它们没有涵盖一些基本的基础知识。我已经导入了一个资产目录(其中包含子目录)并选择了“复制(根据需要)”。该文件夹是蓝色的,并出现在 Build Phases -> Copy Bundle Resources 中。我使用了下面的简单线条,但图像在模拟器中仍然显示为红色“X”。我已经完成了清理/构建/重新启动,但它仍然无法正常工作。

    if let ship = SKSpriteNode(fileNamed: "cannon.png")
    {
        ship.position = CGPoint(x: self.size.width/2, y: self.size.height/2)
        self.addChild(ship)
    }

引用的文件位于Assets/Sprite Images/cannon.png

我怎样才能让图像出现?

编辑

我已经下载了Space Invaders Tutorial Starter Project,它使用了“资产”文件夹的概念,并且完全符合我的尝试。 “Images.xcassets”文件夹中没有列出任何内容,所以我不确定为什么我的没有加载。我需要将其标识为特定文件夹吗?

【问题讨论】:

    标签: swift xcode skspritenode


    【解决方案1】:

    试试这个:

    let texture = SKTexture(imageNamed: "myImage.png")
    let ship = SKSpriteNode.init(texture: texture)
    

    let spaceship = SKSpriteNode(imageNamed: "myImage.png")

    无论哪种情况,请使用imageNamed

    【讨论】:

    • 相同的结果。我还在“身份和类型”下的文件检查器中验证了该文件的名称为“cannon.png”
    • 假设您单击 .xcassets(蓝色文件夹),在“身份和类型”下应该是类似于“Assets.xcassets”或您的 xcasset 的名称。点击 .xcassets 中的资产,然后在“属性”下应该有图像的名称。
    • 啊,我在项目导航器的目录结构中点击实际文件
    • 是的,您需要使用 .xcassets 资源中显示的图像名称。
    • 很有趣,因为它没有在此处列出。我会调查的。谢谢。
    【解决方案2】:

    我最终不得不将其添加为捆绑资源以使其可用。我通过选择顶级解决方案来做到这一点,然后转到以下区域:Build Phases->Copy Bundle Resources

    底部是一个 +/-,您可以将单个项目添加到项目中。添加后,您将选择“复制(根据需要)”,该项目将出现在列表中。然后它对项目可用。不幸的是,在目录级别添加它不起作用。

    正如在其他搜索中所表明的,在文件检查器中必须选中“目标成员资格”框似乎很常见,但即使在此之后,我也没有可用的复选框。

    值得一提的是,以上方法的结合似乎可以解决问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-03-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-28
      • 2019-04-10
      • 2017-12-09
      相关资源
      最近更新 更多