在我的Xcode项目我有一个蓝色的文件夹,引用指向与图像的文件夹。
蓝色文件夹的好处是,我不需要手动将文件添加到Xcode中。 所以,当我添加一个新的图像文件夹,它会自动显示不过了Xcode中,当我尝试使用引用从代码的文件
[UIImage imageNamed:@"myFileFromTheBlueFolder"];
它没有找到图片虽然顶层文件夹添加到目标。 :-(
我必须以不同的方式引用图像时,我从蓝色的文件夹,这将恕我直言击败所有具有该文件夹的目的来。
在我的Xcode项目我有一个蓝色的文件夹,引用指向与图像的文件夹。
蓝色文件夹的好处是,我不需要手动将文件添加到Xcode中。 所以,当我添加一个新的图像文件夹,它会自动显示不过了Xcode中,当我尝试使用引用从代码的文件
[UIImage imageNamed:@"myFileFromTheBlueFolder"];
它没有找到图片虽然顶层文件夹添加到目标。 :-(
我必须以不同的方式引用图像时,我从蓝色的文件夹,这将恕我直言击败所有具有该文件夹的目的来。
我想这个问题是“蓝色的文件夹”(例如文件夹的参考,而不是一组)正被复制到你的应用程序资源一字不差。 换句话说,它没有被夷为平地像资源通常是。 如果你检查你的产品建,旁边的一切正常的资源,你可能会看到该文件夹一样,这是文件夹中的一切仍是在文件夹中。
因此, +[UIImage imageNamed:]
找不到图像,因为它不递归到子目录。 您可以使用-[NSBundle pathForResource:ofType:inDirectory:]
才能到资源的路径,并传递至+[UIImage imageWithContentsOfFile:]
,但这种放弃的内存优化, +imageNamed:
具有(例如在其缓存中使用的图像和滴未使用的图像)。
或者,您可以停止使用文件夹参考。 或者你可以删除您的资源文件夹参考建造阶段,并添加一个shell脚本生成阶段是复制其内容到你的内置产品代替。
凯文是对有关内存的优化+[UIImage imageNamed:]
提供,但它绝对是可以访问的蓝色文件夹(文件夹引用)的图像。 所有你需要做的是文件夹名称添加到图像名称。 例如:
你的资源被组织这样的:
Icons (blue folder / folder reference)
|__camera.png
|__checkmark.png
Shared (yellow folder / xcode group)
|__back.png
|__logo.png
您可以访问像这样的图片:
[UIImage imageNamed:@"Icons/camera"];
[UIImage imageNamed:@"Icons/checkmark"];
[UIImage imageNamed:@"back"];
[UIImage imageNamed:@"logo"];
写图像的完整名称。
[UIImage imageNamed:@"myFileFromTheBlueFolder.png"];
同时请记住不区分大小写的名字。