2010-01-11 87 views
15

我是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

回答

11

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

5

您可以在界面生成器中手動設置圖像,但它不會顯示直到運行時。圖像名稱可以包括路徑,例如, 「圖像/ settings.png」。

3

我也需要這個工作,這裏是我找到的解決方法。 您需要創建一個虛擬xcode項目。將它放在與您的項目相同的文件夾中。 在xcode中打開項目時,通過拖動它們將所有xib文件和圖像文件添加到該xcode項目。現在您將能夠看到圖像的預覽。 圖像文件必須與項目文件位於同一文件夾中,並且必須在打開界面構建器時用虛擬項目打開xcode。 不是很好 - 但現在解決了這個問題。 Here是我創建的示例項目。

對於MonoDevelop一方需要解決的問題 - 需要創建一些進程間通信代碼,我認爲一個好的起點是在google中尋找「PBXProjectWatcherServerConnection-3.1.2」。

+0

這工作...種。 當我在「界面」構建器中選擇圖片時,它僅使用圖片的立即名稱,並忽略文件路徑。 如果我在界面生成器中添加文件路徑,圖像將返回問號。 有什麼辦法可以使它與路​​徑一起工作嗎? – 2011-04-08 11:09:25

4

此處給出的所有解決方案都是完全錯誤和誤導的。您只需將圖像放入Resources文件夾(位於項目根目錄),然後將圖像添加到該文件夾​​。將文件添加到此文件夾後,標記所有文件並確保將其構建操作設置爲BundleResource。

+0

此功能僅在2012年添加,因此以前的答案是正確的,但現在已過時。請參閱此處以獲取開發人員對同一問題的回答:http://stackoverflow.com/a/11493599/66131。無論如何,你的答案完美無缺,所以謝謝! – 2013-01-18 11:24:54