2011-03-24 62 views
0

在我正在工作的應用程序中,我有幾個UIImage,由於某種原因出現非常模糊。這特別適用於我使用的兩個相當小的圖標(80x15和65x15)。爲什麼這些UIImage如此「模糊」?

Top is original, below is blurry

iPad Simulator

(更新:增加了iPad的模擬器輸出,以及 - 它是模糊的,就像iPad的輸出)

左上角和右上角是原始圖像,左下和右下他們是如何在iPad上出現的。我實際上抱怨這些用戶很模糊,所以它不僅僅是我。

其中這些一個到位的代碼看起來是這樣的(可以顯示在請求的另外一個代碼):原始圖像(如果你認爲這可能是一個格式問題

UIButton *bWeb = [[UIButton alloc] initWithFrame: 
    CGRectMake(attriboffset, height - 20.f, 65.f, 15.f)]; 

[bWeb addTarget:self action:@selector(clickWebLink:) 
    forControlEvents:UIControlEventTouchUpInside]; 

bWeb.userInteractionEnabled = YES; 

[bWeb setImage:[UIImage imageNamed:@"button-weblink-65x15.png"] 
    forState:UIControlStateNormal]; 
[bWeb setImage:[UIImage imageNamed:@"button-weblink-highlighted-65x15.png"] 
    forState:UIControlStateHighlighted]; 

[self addSubview:bWeb]; 
[bWeb release]; 

與實際的PNG文件):cc-by.png,weblink.png

+0

什麼是圖像的dpi? – 2011-03-24 16:32:27

回答

3

確保UIButton的幀中的所有數字都被舍入/截斷爲整數。

+0

就是這樣! attriboffset沒有四捨五入,導致了這個問題。謝謝! – Kalle 2011-03-24 16:55:29

0

我認爲,由於某種原因,圖像被呈現某種不必要的處理,導致質量損失。

嘗試將您的UIButtoncontentMode屬性更改爲UIViewContentModeCenter。缺省值是UIViewContentModeStretch

+0

原因是attriboffset未被取整,這是問題的原因。 – Kalle 2011-03-24 16:56:12

+0

對啊!我知道某些處理正在進行,你不需要! :D – 2011-03-24 18:32:40

0

在預覽中打開圖像並重新保存它們。

2

attriboffset是什麼?

就像hoha說的那樣,如果數字不是整數,那麼最終會得到分數偏移,並且設備會做一些模糊的抗鋸齒來彌補這一點。數字不應該有分數。