我的问题应该是如此简单,令人难以置信。当我更改存储在我的应用程序包中的图像文件的外观(在PhotoShop中)时。我用新的替换旧图像的方法是:
1)从应用包中删除旧图像(选择也移至垃圾箱) 2)将新图像拖动到xcode中的文件层次结构中(选择复制到app目录)
当我这样做时,无论我做什么,应用程序都找不到图像。新图像与旧图像具有相同的名称,但图像加载方法(imageNamed,imageWithContentsOfFile,nibs)都不起作用。 (虽然我相信笔尖也加载了imageNamed,但我不确定。)
我在这里缺少一些东西吗?我觉得它应该是一个相对简单的过程,但我遇到了各种各样的麻烦。我还确保删除目标设备上的应用程序并清理所有目标,然后在更改图像文件后重建和运行以防万一。
任何帮助都将不胜感激。
由于
答案 0 :(得分:4)
您的问题可能是图像未复制到目标。在xcode群和&文件窗格,精确的目标节点,扩展您的应用程序目标,您将看到复制捆绑资源扩展它,当您将应用程序部署到SIM /设备时,您将看到所有文件都复制到默认资源包。只有找到的资源才能供您的应用使用。如果你没有在那里看到你的图像,你可以将它拖到那里,一切都会起作用。
现在,为了理解为什么会发生这种情况,我们需要查看将文件添加到xcode的不同选项。
当您向xcode添加文件时,会出现一个对话框,其中包含一些有趣且有时被忽略的选项。
第一个 - 应该将文件复制到项目文件夹,还是应该只指向文件的原始位置。最安全的方法是始终将文件复制到项目的路径。但是对于图像(例如在你的情况下)我做的不同。我为每个应用程序维护一个单独的图形文件夹,我在那里保存图像(两个来源,最后一个png)。当我添加图像时,我不会将其复制到项目文件夹,而是xcode只指向它的位置。这样我就可以在photoshop中编辑图像,进行重建,更新的图像将显示在手机上。重要的是要了解您在项目中包含的文件的目录结构几乎没有意义,目标的复制包资源中出现的文件将始终复制到手机上的单个(和平面)包/“目录” 。唯一的例外是如果你实际上将目录添加到xcode(我个人建议反对它)。
添加文件时的第二个选项是添加文件的目标。这是底部带有复选框的列表,如果您添加图像时未检查到您的应用目标,则该文件将不会包含在目标复制包资源中,并且将无法用于手机。
一些注意事项 - 当在其他位置使用对文件的引用时,该位置是相对于项目的路径的,因此最好将所有文件保存在项目根目录下的目录中。这样你仍然可以将整个项目复制到一个不同的位置,它仍然可以工作。
答案 1 :(得分:1)
上面的好建议:我想我会为此主题的未来搜索添加更多内容:
我正在上面添加和删除图像:
但是,当我尝试将具有相同名称的新图像拖到xcode中的文件层次结构时,我收到了一个错误,即不允许这样做。
当我删除旧图像时,Xcode将其从项目文件层次结构中删除,但实际文件并未从项目的根目录中删除。
我通过从项目的根目录中删除图像并再次添加图像来解决我的问题!
答案 2 :(得分:0)
您是否将图片放在自定义子文件夹中?如果只是将图像拖入Xcode项目树中,如果复制它们,图像将被复制到项目目录的根目录,而不是“图像”或您可能已设置的其他文件夹。
请注意,您可以右键单击数据包中的图像,选择“获取信息...”并重置其位置(如果已将其移动或复制到您不期望的文件夹中)。