我制作了一款具有特定功能和特定图形效果的应用。
例如,从Xib文件加载自定义tableview单元格,并将UIImageView作为背景图像加载,并从资源组加载粉红色图像(“customcell.png”)。
现在,我已复制原始Target以创建应用程序的蓝色版本。 此外,新Target正在使用自己的Info.plist文件及其自己的包标识符。
我希望Xib文件中的UIImageView使用相同的文件名(“customcell.png”),但如果构建了蓝色Target,则需要使用蓝色版本的customcell.png。
我知道你不能在项目中拥有同名文件,即使你把它放在一个组(黄色文件夹)中,因为那只是一个逻辑文件夹。
所以我创建了2个蓝色文件夹(称为“蓝色”和“粉红色”),每个文件夹都与正确的目标相关联。 我在“blue”文件夹中添加了蓝色版本的“customcell.png”,在“粉红色”文件夹中添加了粉红色版本的“customcell.png”。
我已从项目中删除了原始的“customcell.png”,只留下了新文件夹中的2个副本。
在Interface Builder中,UIImageView变为空白(因为我删除了原始图像文件),所以我从下拉列表中再次选择了“customcell.png”。 它只显示了该名称的1个文件(不是2个),而且它是蓝色的(不知道为什么)。
然而,当我构建到任何目标时,我得到一个空的UIImageView并发出警告:
无法加载标识符为“com.myapp.blueversion”的包中nib引用的“customcell.png”图像
(或pinkversion)
所以,基本上我的问题是, 如何使用相同名称的不同图像,与不同的目标相关联, 但是有1个Xib文件可以正确加载它们吗?
非常感谢!
答案 0 :(得分:3)
您遇到的问题是您尝试使用蓝色文件夹,就好像它们是普通的文件系统文件夹一样。蓝色文件夹实际上只是用于在IDE中组织的文件组,并且不代表文件夹层次结构'引擎盖下。
通过右键单击某些图像来查看它是如何工作的,以便在Finder中查看它们,并且您会注意到默认情况下,2个不同蓝色组文件夹中的文件实际上位于同一目录中。
如何使用一个xib为多个目标引用相同的命名图像:
只需为每个目标重复此过程。
当您在Xcode中查看xib时,它将始终显示图像的一个版本,但在运行应用程序时它将是正确的。
答案 1 :(得分:2)
您可以尝试两个.xib副本,每个副本都是不同目标的成员。 如果你愿意,.m和.h可以是两个目标的成员(因此只有.xib是重复的。)
我刚刚发布了similiar question,可能会对此有所帮助。
答案 2 :(得分:0)
我的蓝色文件夹有问题,我不确定它们应该如何工作!
我为我的应用程序的免费和付费版本使用单独的目标,这就是我如何分隔不同的图标文件(麻烦,因为他们必须有某些名称)
我的文件系统如下所示:
资源
IconsPaid
的icon.png
Icon@2x.png
等
IconsFree
的icon.png
等
然后我将IconsPaid和IconsFree文件夹拖到XCode并将内容分配给相关目标
答案 3 :(得分:0)
我遇到了同样的问题。 通过重命名包含要显示的目标图像的文件夹,我设法从一个目标传递到另一个目标,从而使其按字母顺序成为第一个。