2013-02-05 40 views
1

我正在調整圖像以適應它在酒吧。我需要調整它的大小,因爲圖像是在一個分貝,這也是用於Android的同一個應用程序。事情是這個代碼在iOS 6.1,但在更低的5.0 5.1工作良好我在酒吧有一個黑色的圖像。代碼如下:調整大小圖像爲一個酒吧

CGSize newSize=CGSizeMake(320,44); 
UIGraphicsBeginImageContext(newSize); 
[image drawInRect:CGRectMake(0,0,newSize.width,newSize.height)]; 
UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext(); 
UIGraphicsEndImageContext(); 
[self.navigationController.navigationBar setBackgroundImage:newImage forBarMetrics:UIBarMetricsDefault]; 

這種錯誤行爲的一些想法?

good

bad

由於

+0

- (空)了setBackgroundImage:(*的UIImage)和backgroundImage forBarMetrics:(UIBarMetrics)barMetrics只支持5.0+ –

+0

是的,但我在5.0和5.1中有這個問題,但沒有在6.1 –

回答

1

使用下列特定HIGHT寬度圖像方法

+ (UIImage*)resizeImage:(UIImage*)image withWidth:(int)width withHeight:(int)height 
{ 
    CGSize newSize = CGSizeMake(width, height); 
    float widthRatio = newSize.width/image.size.width; 
    float heightRatio = newSize.height/image.size.height; 

    if(widthRatio > heightRatio) 
    { 
     newSize=CGSizeMake(image.size.width*heightRatio,image.size.height*heightRatio); 
    } 
    else 
    { 
     newSize=CGSizeMake(image.size.width*widthRatio,image.size.height*widthRatio); 
    } 


    UIGraphicsBeginImageContextWithOptions(newSize, NO, 0.0); 
    [image drawInRect:CGRectMake(0,0,newSize.width,newSize.height)]; 
    UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext(); 
    UIGraphicsEndImageContext(); 

    return newImage; 
} 

該方法返回NewImage,具體尺寸您指定:)
此代碼可能對你有幫助:)

+0

謝謝這爲我工作 –