我有一个捆绑,我把图像放在里面。
内容如下:
MyBundle.bundle/images/picture1.png
MyBundle.bundle/images/picture2.png
我将MyBundle.bundle
拖入我的项目中。
现在我可以在Interface Builder中看到这些图像,甚至可以使用它们。但是,当我运行应用程序时,我看不到图像。
怎么了?
谢谢,
答案 0 :(得分:39)
确保在目标项目设置的“构建阶段”中复制捆绑包。
另外,尝试以编程方式设置它们并查看它们是否显示:
myImageView.image = [UIImage imageNamed:@"MyBundle.bundle/images/picture1.png"];
我刚刚在我的项目中尝试了这一点,发现您需要做的是使用前面的包名称指定图像,如下所示:
在IB中,图像看起来坏了:
但是当您构建并运行您的项目时,图片将正确显示。
因此,在您的情况下,请在实际的Interface Builder图像框中使用MyBundle.bundle/images/picture1.png
。
此外,如果您未将捆绑名称放在前面,则在使用捆绑图像加载视图时会收到此警告:
2011-10-12 08:22:16.360 UTDebug[721:11c03] Could not load the "map.png" image referenced from a nib in the bundle with identifier "com.companyname.myproject"
答案 1 :(得分:8)
您也需要将XIB放入捆绑包中。当您这样做时,界面的资源将相对于捆绑包,因此它们将在IB中以及在您的应用程序中加载界面时工作。
答案 2 :(得分:0)
您可能将捆绑包创建为Mac OS X目标,从而产生杂散构建设置。
请参阅我的other answer了解解决方案。