2010-07-27 43 views
14

我有一個TabBarController,設置圖像的像這樣的標籤,在-init方法:高分辨率@ 2倍的圖像沒有被拾起的標籤欄項目

self.tabBarItem.image = [UIImage imageNamed:@"tabImage.png"];

我有一個tabImage @資源中的2x.png文件。在iPhone 4模擬器或手機中,高分辨率圖像沒有被拾取 - 低分辨率版本正在被放大。

任何想法,爲什麼這可能是?

編輯:一些更多的信息: 如果我嘗試和明確使用[email protected](或只是[email protected]),那麼標籤圖像我看到的是非常大的,並炸燬超出片的界限,彷彿它正在從60像素縮放到120像素。所以它看起來像任何名稱供應被視爲一個規模= 1.0圖像。

+0

你是否仔細檢查了文件名字母的大小寫? – ohhorob 2010-07-27 03:42:26

+0

是的,大小寫匹配 – psychotik 2010-07-27 05:38:59

+0

當您刪除低分辨率版本時只會在分組中留下高分辨率會發生什麼? – iwasrobbed 2010-07-27 21:23:07

回答

0

您可以立即關閉.png。我相信它仍然有效,但你可以嘗試。

+0

這似乎沒有影響我的問題 – psychotik 2010-07-27 03:30:52

+1

什麼是NSLog(@「%f」,[[UIImage imageNamed:@「tabImage.png] scale);'print – 2010-07-27 03:58:46

+0

Jusua - 它打印2.000000 – psychotik 2010-07-27 06:55:10

1

您確定該文件已被添加到XCode項目中,並且在項目瀏覽器中可見嗎?

+0

是的,我很積極。 – psychotik 2010-07-27 15:14:06

0

我剛剛通過的瘸子重做藝術和嘗試幾個小時去得到它的認可,並通過我的應用程序在iPhone上加載4

我遇到了一定的圖像描述了@2x擴展問題沒有被識別和加載。

我無法辨別任何圖案。我的圖像全部使用[UIImage imageNamed:@"<name>.png"]加載到一個單例中。我檢查了啓動後的圖像比例設置,其中一些是1.0(舊藝術),一些是2.0(新藝術)。

我能夠解決此問題的唯一方法是刪除並重新添加未被識別的高分辨率圖像

0

兩個愚蠢的錯誤(這兩個我以前發)可能導致此問題:

  1. 一不小心命名的小 版本@ 2倍,而不是大 那些
  2. 具有較大的版本被 略微錯過(一個像素)
11

請注意,模擬器不區分大小寫,但設備是。確保大小寫完全匹配。如果您在某些時候更改了文件名的大小寫,則需要清理並重建。有時,對於模擬器,我不得不實際吹走庫/應用程序支持/ iPhone模擬器/ 4.3 /應用程序/中的文件夾以獲取重建以獲取重命名的圖像。

始終使用

[UIImage imageNamed:@"foo.png"] 

這將工作在3.x和4.x的設備,並在4.x的模擬器。帶有視網膜顯示器(和4.x模擬器)的設備會奇蹟般地提取@ 2x版本的圖像; iOS已被修改爲關於此功能和@ 2x.png文件的智能。

請確保你有@ 2x.png和正常。png添加到項目文件中,並執行完整的清理&構建。正如其他人所提到的那樣,也要驗證圖像的大小。顯然,如果它們不是這個尺寸的兩倍,它將無法工作(我沒有自己驗證過)。

如果您關閉.png,它將只能在iOS 4.0上運行。所以,如果你正在構建一個4.0+唯一的應用程序,你可以問:

[UIImage imageNamed:@"foo"] 

如果只有一個高分辨率的圖像,並想用它兩個視網膜和非視網膜設備上,那麼你」你必須改變view.contentMode來縮放以適應。

+0

清理和重建解決了它!謝謝。 – 2012-09-07 17:54:46

+0

+1進行清潔和重建。 – Soup 2012-11-06 06:43:10

0

需要2個版本的圖像和定義都將在項目文件夾相同的位置,並添加到項目

image.png 60X60 [email protected] 120×120

那麼簡單使用[UIImage imageNamed:@"image.png"]

就是這麼做的自制與按鈕和它的工作對我(的iOS 4.1)

+0

它必須是'image @ 2x.png'而不是'image @ 2.png'。 – 2012-10-01 12:08:28

3

我有同樣的問題。原來我的PNG不是方形的。解決方案:將其設爲正方形,並且可以工作。

+0

這和第一個答案解決了我的問題。 – 2013-07-08 18:43:05

0

要注意的另一件事是有兩個具有相同名稱的圖像。

0

我有同樣的問題。 @ 2x圖像檢查了錯誤的構建目標(ServiceTests而不是MyProject)。

1

我也有這個問題。

製作2張圖片:

  • 30×30像素
  • 爲60x60像素的

後綴與的60x60pixel圖像@ 2×。例如,[email protected]。然後,在您的故事板或代碼中,您可以指定常規版本,並且iOS會根據自己的判斷選擇@ 2x版本。

0

我有完全相同的問題。

製作兩張圖片:im1.png和[email protected] 調用imageNamed:第一張。請注意,imageNamed:不初始化UIImage,因此將其用作臨時[[UIImageView new] initWithImage:[UIImage imageNamed:@「im1.png」]]或自己初始化UIImage。