2011-10-11 82 views
24

我有一个捆绑,我把它的图像。iOS:如何在界面生成器中使用自定义束中的图像?

内容是:

MyBundle.bundle/images/picture1.png 
MyBundle.bundle/images/picture2.png 

我拖着MyBundle.bundle到我的项目。

现在我可以在Interface Builder中看到这些图像,甚至可以使用它们。但是,当我运行该应用程序时,我看不到图像。

怎么了?

感谢,

回答

36

确保该包在得到复制过来的“构建阶段”为目标的项目设置。

另外,尽量progrmatically设置他们,看他们是否显示:

myImageView.image = [UIImage imageNamed:@"MyBundle.bundle/images/picture1.png"]; 

我只是尝试这样做我的项目,发现您需要做的是同捆名指定图像在前面这样的:

Image in IB

在IB图像将破:

Broken

但是当你建立运行项目中的图像会显示正确

因此,对于您的情况,请在实际的Interface Builder Image框中使用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" 
+0

你好。是的代码行myImageView.image = [UIImage imageNamed:@“MyBundle.bundle/images/picture1.png”];作品。但是,如果我在IB中设置图像,则会在日志中看到以下警告:无法加载标识符为“com.xxx”的包中的nib引用的“picture1.png”图像,但它不显示。我确实检查了“构建阶段”,并且该包在那里。还有其他建议吗?你是否设法让它自己工作? –

+0

好的,我发现了这个问题。您需要将包名称放在IB的实际图像框中。查看我的答案编辑了解更多。 – chown

+0

谢谢!有效!他们应该在IB中纠正图像的问题,因为这是误导人的!再次感谢! –

8

你需要把厦门国际银行在捆绑了。当你这样做的时候,接口的资源将与bundle相关,所以它们既可以在IB中工作,也可以在你的应用中加载接口。

+0

不错!我从来没想过这点。 – chown

+0

这工作完美! – ram

0

从创建捆绑包到Mac OS X目标,您可能会有一个杂散的生成设置。

查看我的other answer的解决方案。

相关问题