2012-04-03 57 views
1

我的印象是,UIImageView相應地縮放您的圖像,但我不確定是否正確理解它。所以我在兩個地方有一個圖像,一個小於另一個。在較小的區域,圖片不清晰。我爲這個小區域做的是:UIImageView圖像不鮮明與UIViewContentModeAspectFit

UIImageView *container = [[[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 200, 200)]; 
UIImageView *graphic = [[[UIImageView alloc] initWithFrame:CGRectMake(10, 10 , 120, 120)] autorelease]; 
[graphic setImage:[UIImage imageNamed:@"test.png"]]; 
graphic.contentMode = UIViewContentModeScaleAspectFit; 
[container addSubview:graphic]; 
    UIGraphicsBeginImageContextWithOptions(container.bounds.size, NO, 1.0); 
    [container.layer renderInContext:UIGraphicsGetCurrentContext()]; 
    UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext(); 
    UIGraphicsEndImageContext(); 

我基本上有我的圖形作爲容器的子視圖。就像紙牌上的圖像一樣,然後這個方法將viewImage返回給我。但是當我看着撲克牌上的圖像時,當我將它放在更大的圖像視圖中時,它不像其他圖像那樣清晰。是否有一個原因?謝謝。

1圖像,清晰的: enter image description here

第二圖象,不清脆: enter image description here

+0

你只是使用這種方法來調整圖像大小?我們可以退後一步,談談您使用此代碼的總體目標,因爲可能有標準方法來實現您的需求。 – Sam 2012-04-03 20:30:38

+0

@Sam據我所知,從這個項目開始,我的目標是創建一張紙牌感覺與撲克牌上的圖像。我認爲他們試圖用撲克牌和一些文本來模仿蘋果的封面。所以一旦UIImageView被返回,他們就可以在畫布上移動它。這有幫助嗎? Thx再次山姆。 – Crystal 2012-04-04 19:02:10

回答

0

簡單。您在UIGraphicsBeginImageContextWithOptions調用中設置了1.0的scaleFactor。如果您在具有視網膜屏幕的設備上運行,這會導致您的作品呈現50%的尺寸。您可以將1.0更改爲2.0或更好,從類中獲取比例因子。

+0

我試着改變比例因子,圖像看起來還是一樣的。縮放因子似乎呈現整個位圖,包括我正在使用的背景容器imageview。我可以看到,通過玩價值(減少使它真的很塊)。當我增加比例因子時,它似乎並沒有讓圖形圖像更清晰。還有什麼我失蹤?謝謝。 – Crystal 2012-04-03 19:34:03

+0

您可以發佈一些示例圖片,以便我們仔細查看確切的問題嗎? – Sam 2012-04-03 19:37:02

+0

另外嘗試設置上下文比例因子爲0.這應該會自動選擇最合適的比例因子。 – Sam 2012-04-03 19:47:17