2012-11-07 115 views
1

我在界面生成器中設置了按鈕背景,但沒有顯示出來,所以我以編程方式設置它。所有(但一個按鈕......爲什麼?)在模擬器上顯示,但從未在設備上顯示。自定義UIButton背景圖像顯示在iOS 6但不是iOS 5

我得到這樣的輸出:

Could not load the "gray_button.png" image referenced from a nib in the bundle with identifier "com.example.ios"

這是代碼:

- (void) viewWillAppear:(BOOL)animated 
{ 
    [super viewWillAppear:animated]; 

    [self.getMyTripButton setBackgroundImage:[UIImage imageWithContentsOfFile: 
              [[self getFullPathname] stringByAppendingPathComponent:@"images/gray_button.png"]] 
           forState:UIControlStateNormal]; 
    [self.popupButton setBackgroundImage:[UIImage imageWithContentsOfFile: 
             [[self getFullPathname] stringByAppendingPathComponent:@"images/gray_button.png"]] 
          forState:UIControlStateNormal]; 


    [self.viewOurPackages reloadData]; 
} 

我也試圖與imageNamed更換imageWithContentsOfFile兩者產生相同的結果。

我在我的項目>目標>構建階段>複製包資源中添加了圖像目錄,但我認爲這是一切開始出錯的地方,我找不出原因。可能是因爲它是一個目錄?

我想指出,我有雙倍和三倍檢查,它不是大小寫/區分大小寫的問題。

更新:我解決了一個按鈕沒有顯示。看起來真正的問題是圖像在iOS6和不在iOS5上顯示。

+0

如果它顯示,而不是在模擬器設備,可能的問題是該文件的名稱是錯誤的。檢查gray_button.png是完全一樣的,沒有大寫字母在其他地方使用在模擬器中工作正常,但在設備中它不會工作,如果名稱是不同的 – iDev

+0

這就是正確的名字,但我會說我們確實有一個gray_button.png和一個[email protected] – Stephanie

+0

嘗試在模擬器和設備上清理和重建您的項目,並檢查結果是否有任何變化 –

回答

2

什麼爲我工作是以下3種情況之一(或組合):

  1. 確保您的圖像文件格式正確無誤。有時PNG文件需要一點強制。 (我認爲這具體是我的問題)
  2. 確保您的按鈕的類型在界面生成器中定製或UIButtonTypeCustom
  3. 如果要設置在Interface Builder中的形象和它仍然沒有顯示,使用[button setBackgroundImage:image forState:UIControlStateNormal](或[button setImage:image forState:UIControlStateNormal]設置明確的代碼取決於你需要哪一種。
1

如果你在一個文件夾添加到副本束,然後而不是引用該文件爲gray_button.png,你應該從代碼,如果引用或廈門國際銀行,您將不得不在名稱中包含的目錄也如directory/gray_button.png

+0

我這樣做。我得到完整的路徑名。我也試過了'images/gray_button.png'。 – Stephanie

0

Steph,

如果您使用@synthesize作爲.h file中的按鈕,則會自動創建獲取器和設置器。因此,名字getMyTripButton(這是一個很長的想法)可能會讓Xcode產生混淆。嘗試重命名變量?

只要圖像不加載...其中一個按鈕,而不是其他... da faq?這是gray_button.png被叫的唯一地方嗎? (例如,您不會在其他地方修改該按鈕,可能會告訴它再次使用該圖像)。你有沒有嘗試把它放在與使用它的筆尖相同的目錄中?你確定getMyTripButton從筆尖正確綁定到代碼?

最後一件事我能想到的現在: 你說

我設置在界面生成器按鈕的背景,但這並不是 顯示出來,所以我把它編程。所有(但一個按鈕......爲什麼?) 顯示了模擬器,但設備

做從來沒有告訴你有popupButton的背景圖片也是在筆尖/界面生成器設置?如果你已經設置了它並且在這裏重新設置它,它可能是它並沒有真正被設置在代碼中,而只是使用界面生成器中的內容,這可以解釋爲什麼getMyTripButton可能不會顯示/顯示背景圖像。

如果我想到其他任何可能導致此問題的內容,我將編輯此帖子。祝你好運,並掛在那裏。

相關問題