使用MonoTouch时界面生成器中的图像

问题描述:

我是MonoTouch和iPhone开发的新手。我在MonoDevelop的资源文件夹中有我的图像(PNG),但是如果我想在Interface Builder中为按钮设置图像属性,我该怎么做?它总是一个空白的下拉菜单。我是否需要使用XCode访问XIB文件,然后以某种方式嵌入我需要的按钮图像文件?使用MonoTouch时界面生成器中的图像

+0

我对monoouch一无所知,但根据我对Interface Builder的“查看”图像文件的经验,该文件需要成为xib文件所包含的相同Xcode项目的一部分。您实际上并没有将图像文件嵌入到xib文件中,但nib加载程序通常只能从应用程序包中加载资源,并且当您将图像添加到Xcode项目中时,它会作为文件添加到构建应用程序包。因此,IB期望Xcode项目资源是在nib(xib)文件中引用的有效文件,因为它可以确保它们在运行时会在那里。 – Nimrod 2010-01-11 06:13:49

This is a known limitation of MonoDevelop and Interface Builder。要在Interface Builder中将图像添加到XIB中,它们必须是XCode项目的一部分,这当然来自MonoDevelop,但它们不是。

要实现您正在尝试执行的操作,您需要通过代码设置图像,并确保将图像的构建操作设置为“内容”。为此,只需在MonoDevelop中右键单击图像,然后选择“构建操作”>“内容”。在您的视图上使用它的按钮,在Interface Builder中为您的按钮创建一个插口,将其挂起,然后从代码设置您的图像,您只需使用.FromFile(“path/name”) UIImage的方法。

UIImage buttonImage = UIImage.FromFile ("resources/image.png"); 
myButton.SetBackgroundImage (buttonImage,UIControlState.Normal); 

这不在我头顶,但我认为应该这样做。

+2

您仍然可以在Interface Builder中设置图像,在编辑时它们不会显示在IB中。将图像添加到单点触控的根目录中,设置为上述内容,并在IB中将图像设置为“myimage.png”。在编辑过程中您会看到一个问号,但在运行时会显示图像。 – 2010-01-31 23:40:49

+0

投票了解伟大的答案。 – bharath 2011-04-06 14:08:36

您可以在界面生成器中手动设置图像,但它不会显示直到运行时。图像名称可以包括路径,例如, “图像/ settings.png”。

我也需要这个工作,这里是我找到的解决方法。 您需要创建一个虚拟xcode项目。将它放在与您的项目相同的文件夹中。 在xcode中打开项目时,通过拖动它们将所有xib文件和图像文件添加到该xcode项目。现在您将能够看到图像的预览。 图像文件必须与项目文件位于同一文件夹中,并且必须在打开界面构建器时用虚拟项目打开xcode。 不是很好 - 但现在解决了这个问题。 Here是我创建的示例项目。

对于MonoDevelop一方需要解决的问题 - 需要创建一些进程间通信代码,我认为一个好的起点是在google中寻找“PBXProjectWatcherServerConnection-3.1.2”。

+0

这工作...种。 当我在“界面”构建器中选择图片时,它仅使用图片的立即名称,并忽略文件路径。 如果我在界面生成器中添加文件路径,图像将返回问号。 有什么办法可以使它与路​​径一起工作吗? – 2011-04-08 11:09:25

此处给出的所有解决方案都是完全错误和误导的。您只需将图像放入Resources文件夹(位于项目根目录),然后将图像添加到该文件夹​​。将文件添加到此文件夹后,标记所有文件并确保将其构建操作设置为BundleResource。

+0

此功能仅在2012年添加,因此以前的答案是正确的,但现在已过时。请参阅此处以获取开发人员对同一问题的回答:http://*.com/a/11493599/66131。无论如何,你的答案完美无缺,所以谢谢! – 2013-01-18 11:24:54