2012-04-16 64 views
0

我有一個梯度的形象,在藍色。它是100px(高度)×1px(寬度)。現在我試圖將其用作突出顯示狀態的背景圖像。但不知何故,它在運行時會變成橙色。這裏可能有什麼問題?按鈕的高度爲40像素,所以將其設置藍色漸變的圖像錯誤拉伸成橙色漸變圖像的UIButton

UIImage *image = [UIImage imageNamed:@"pressed.png"]; 
UIImage *stretchedImage = [[UIImage imageWithImage:image scaledToSize:frame.size] stretchableImageWithLeftCapWidth:0 topCapHeight:0]; 
[button setBackgroundImage:stretchedImage forState:UIControlStateHighlighted]; 
+0

可以還張貼pressed.png形象? – 2012-04-16 07:05:02

+0

抱歉我們對圖片有財產保護,無法分享。 – tom 2012-04-16 07:15:18

+0

您可以重新創建對其他*圖片可以共享的效果嗎?如果沒有其他問題,你可以解決問題。 – ChrisF 2012-04-16 10:57:14

回答

1

有幾個可能的解釋,大致下降可能性順序之前,我做了調整大小:

1)你scaledToSize類別代碼有缺陷在這裏它顛倒了圖像中字節的RGB順序,將藍色變爲橙色。嘗試不縮放圖像,看看它是否是正確的顏色。您實際上並不需要進行縮放,按鈕背景圖像已經拉伸以適應運行時間。

2)你的項目中有兩個pressed的p.png圖像,可能在不同的文件夾中,所以你沒有注意到,但由於編譯器會在構建時將所有圖像轉儲到同一個文件夾,所以你的blue pressed.png是被橙色壓倒了。在磁盤上搜索您的項目以查看是否屬於這種情況。

3)你以前有一個橙色的圖像稱爲pressed.png,當你建立它使用舊的圖像應用程序由於一些緩存的問題。嘗試一個乾淨的版本,重置您的模擬器,並刪除設備的應用程序。

4)你必須是橙色的圖像的[email protected]版本。當您在設備上運行時,它使用的是視網膜版本,因此看起來不同。

5)你的PNG小號腐敗不知何故 - 刪除它,然後從頭開始重新創建。我以前只有1px寬的圖像,所以如果出現這種情況,請嘗試將其擴大。