我有一個問題,我只是無法弄清楚。我已經完成了一個應用程序,它將從正面拍攝一張照片,並從後置照相機拍攝一張照片,然後將它們合併在一起。以編程方式加載視網膜(高質量)圖像(在按鈕上)
應用程序的名稱是GroupCam
但是我在我的UIButtons不會被加載從一開始就視網膜圖像的問題。如果我在界面生成器上將它們設置爲@ 2x,它們確實以高質量出現,但是一旦我以編程方式重新加載它們,低版本就會出現。
這是由於以下事實:拍攝照片並且屏幕改變按鈕圖像改變,但是當用戶按下後退按鈕時,相機圖標看起來很可怕(因爲正在加載低質量版本) 。
請檢查下面的圖片:
第一屏:顯示只有右上角的按鈕扭曲,因爲我檢查相機閃光燈的價值和「加載」編程相應的圖像。
第二個屏幕:用戶移動到另一個畫面,又重新回到了第一個,所有按鈕都重新加載,他們現在都看起來失真。
如果任何人有爲什麼會這樣我會很感激的任何想法!
謝謝。
編輯:
這是我如何加載圖像。
[self.flashButton setImage:[UIImage imageNamed:@"flashOff"]
forState:UIControlStateNormal];
我在網上的某個地方看過,這樣做會自動加載最合適的圖像版本。
我也試過,但結果是一樣的:
[self.takeButton setImage:[UIImage imageNamed:@"takePhoto.png"] forState:UIControlStateNormal];
我在應用程序中使用正常和視網膜圖像的效果很好。所以我建議你做的是選擇這些圖像的正常分辨率,而不是將它們包括在你的項目中(通過第三個最右邊的窗格 - 只需取消選擇複選框)。現在你的應用程序只有視網膜圖像。那麼,如果事情變壞,那麼你的應用程序中的東西就搞砸了。 [UIImage imageNamed:foo.png]存在一些問題。如果您更改該圖像,該圖像的所有後續用戶都將獲得修改後的圖像。重新讀取UIImage imageNamed: –
所以我只是重新讀你的問題,我剛剛看到這樣的說法:「如果我在接口生成器上將它們設置爲」@ 2x「」。因此,在IB中,您輸入了他們的名字「[email protected]」,這是有效的。所以我可以想到的唯一的事情是你的問題可能是「@ 2x」的格式。你是否確定你已經正確地命名了這些圖像 - 「[email protected]」,NOT&2x.png等。看起來好像iOS沒有看到hi rez文件,這是我能想到的唯一原因,這將解釋它。所以請嘗試刪除IB中的「@ 2x」,看看會發生什麼。我敢打賭,你一直都會得到所有低雷茲。 –
是的,它們被格式化並命名正確。這些圖像將以HD完美加載,唯一的問題是當我以編程方式加載它們時。 iOS決定加載低分辨率的。 – Pochi