2012-10-12 19 views
-4
[self.distanceSlider setThumbImage:[UIImage imageNamed:@"handle-slider"] forState:UIControlStateNormal]; 

讓我們來看看這段代碼。@ 2x是否在UIImage上工作imageWithNamed?

如果我使用視網膜顯示,將圖像稱爲手柄滑塊@ 2x而不是手柄滑塊?

請注意,這可能會引發問題。想象一下,如果我加載一個圖像的唯一目的是處理它,我真的很想加載句柄滑塊或句柄滑塊@ 2x?然後讓iOS來重寫我的決定並任意加載@ 2x圖像將會很愚蠢。

另一方面,大多數情況下,我使用UIImage imageNamed來填充按鈕。在這種情況下,添加@ 2x是非常合理的。

在任何情況下,蘋果最終會使用哪條路徑,如果可能的話,參考是什麼?

我搜索了stackOverflow。

大多數答案與建議一個或另一個不一致。

+0

檢查此stackquestion:http://stackoverflow.com/questions/9770990/uiimage-imagenamed-not-work-on-ios-5-0 – Orange

回答

3

documentation對於[UIImage imageNamed:]恰好具有您想要了解的信息。

此方法在指定名稱的 圖像對象的系統高速緩存中查找,並返回該對象(如果存在)。如果匹配的 圖像對象尚未存在於緩存中,則此方法從指定文件加載圖像 數據,將其緩存,然後返回 生成的對象。

在運行iOS 4或更高版本的設備上,如果 設備的屏幕比例爲1.0,則其行爲相同。如果屏幕的比例爲2.0,,則此方法首先搜索具有相同文件名的圖像文件 並附加@ 2x後綴。例如,如果文件的名稱是 按鈕,它首先搜索按鈕@ 2x。如果它找到一個2倍,它將加載 該映像並將返回的UIImage對象 的scale屬性設置爲2.0。否則,它加載未修改的文件名並將比例 屬性設置爲1.0。

+0

這將永遠釘住它。如果我們有stackoverflow,誰需要文檔。 –