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

Iphone 使用MonoTouch时界面生成器中的图像,iphone,xamarin.ios,Iphone,Xamarin.ios,我对MonoTouch和iPhone开发还不熟悉。我在MonoDevelop的resources文件夹中有我的图像(PNG),但是如果我想在Interface Builder中为按钮设置图像属性,我该怎么做?它总是一个空白下拉列表。我是否需要使用XCode访问XIB文件,然后以某种方式将需要的按钮图像文件嵌入其中 。要在Interface Builder中将图像添加到XIB,它们必须是XCode项目的一部分,而XCode项目当然不是来自MonoDevelop 要实现您试图做的事情,您需要通过代码

我对MonoTouch和iPhone开发还不熟悉。我在MonoDevelop的resources文件夹中有我的图像(PNG),但是如果我想在Interface Builder中为按钮设置图像属性,我该怎么做?它总是一个空白下拉列表。我是否需要使用XCode访问XIB文件,然后以某种方式将需要的按钮图像文件嵌入其中

。要在Interface Builder中将图像添加到XIB,它们必须是XCode项目的一部分,而XCode项目当然不是来自MonoDevelop

要实现您试图做的事情,您需要通过代码设置图像,并确保图像的构建操作设置为内容。要做到这一点,只需右键单击MonoDevelop中的图像,然后选择BuildAction>Content

在带有按钮的视图上,在Interface Builder中为按钮创建一个插座,将其连接起来,然后从代码设置图像,您只需要使用UIImage的.FromFile(“path/name”)方法

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

这是我的想法,但我认为应该这样做。

您可以在Interface Builder中手动设置图像,但它在运行时才会显示。图像名称可以包含一个路径,例如“images/settings.png”。

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


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

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

我对monotouch一无所知,但根据我的经验,Interface Builder要“查看”图像文件,该文件必须是xib文件所属的同一Xcode项目的一部分。实际上,您没有将映像文件嵌入到xib文件中,但是nib加载程序通常只能从应用程序包加载资源,当您将映像添加到Xcode项目时,它将作为一个文件添加到构建的应用程序包中。因此,IB希望Xcode项目资源是在nib(xib)文件中引用的有效文件,因为它可以保证它们在运行时会在那里。您仍然可以在Interface Builder中设置映像,它们在您编辑时不会显示在IB中。在monotouch中将图像添加到根目录,如上所述设置为内容,在IB中将图像设置为“myimage.png”。在编辑过程中,您将看到一个问号,但在运行时,图像将出现。。。有点在Interface builder中选择图片时,它只使用图片的直接名称,而忽略文件路径。如果在interface builder中添加文件路径,图像将返回问号。有什么方法可以让它与路径一起工作吗?这个特性是在2012年才添加的,所以之前的答案是正确的,但现在已经过时了。有关开发人员对同一问题的回答,请参见此处:。不管怎么说,你的回答非常有效,谢谢!