【发布时间】:2011-09-08 06:16:02
【问题描述】:
我制作了一个具有特定功能和特定图形外观的应用程序。
例如,自定义 tableview 单元格从 Xib 文件加载,并具有 UIImageView 作为背景图像,并从资源组加载粉红色图像(“customcell.png”)。
现在,我复制了原始 Target 以创建应用程序的蓝色版本。 此外,新的 Target 使用自己的 Info.plist 文件和自己的包标识符。
我希望 Xib 文件中的 UIImageView 使用相同的文件名(“customcell.png”),但如果构建了蓝色目标,则使用蓝色版本的 customcell.png。
我知道你不能在一个项目中拥有同名的文件,即使你把它放在一个组中(黄色文件夹),因为那只是一个逻辑文件夹。
所以我创建了 2 个蓝色文件夹(称为“蓝色”和“粉色”),每个文件夹都与正确的目标相关联。 我在“blue”文件夹中放置了蓝色版本的“customcell.png”,在“pink”文件夹中放置了粉色版本的“customcell.png”。
我已经从项目中删除了原始的“customcell.png”,只留下了新文件夹中的 2 个副本。
在 Interface Builder 中,UIImageView 变成了空白(因为我删除了原始图像文件),所以我再次从下拉列表中选择了“customcell.png”。 它只显示了 1 个同名的文件(不是 2 个),而且是蓝色的(不知道为什么)。
但是,当我构建到任何目标时,我得到一个空的 UIImageView 和一个警告:
无法加载从包中标识符为“com.myapp.blueversion”的 nib 引用的“customcell.png”图像
(或粉色版本)
所以,基本上我的问题是, 如何使用与不同目标关联的具有相同名称的不同图像, 但是有 1 个 Xib 文件可以适当地加载它们?
【问题讨论】:
-
您是否记得将它们分配给不同的目标?
-
是的(我在创建时分配了蓝色文件夹。我似乎无法在其中分配单个文件)...看起来,IB 无法真正访问那些蓝色文件夹。我设法在 CustomeCell 类中使用#IFDEF 来完成它,指向适当的蓝色文件夹,但这意味着需要很多这些#IFDEF,我希望有一种方法可以通过 IB 而不是添加很多如果...如果有人知道一种方法,将不胜感激。谢谢。
标签: xcode resources xcode4 uiimageview target