2016-03-05 28 views
1

請幫助我找到解決以下問題的一些方法。 IOS,Xcode。 我有UIBarItem組件 - 在工具欄上切換語言的按鈕。該欄的功能initeWithImage(UIImage)。問題是,當我試圖縮放圖像時,它變得充滿了顏色......圖片對於工具欄來說太大了。我手動更改了圖片的大小,但看起來很醜陋(我需要縮放)。Xcode:在縮放時,圖像變得充滿UIBarItem的顏色,函數initeWithImage(UIImage)

我試圖解決的問題: 1.槽量表 2.通過幀大小 3.並且兩個以上:)

一些代碼的變體:

self initWithImage:image // 
           style: UIBarButtonItemStyleBordered //UIBarButtonItemStylePlain 
           target:target 
           action:action 
UIImage *image; 
    image = [[UIImage imageNamed:@「image.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]; 

-(UIImage)imageWithImages:(UIImage)image scaledToSize:(CGSize)newSize { 
    //UIGraphicsBeginImageContext(newSize); 
    // In next line, pass 0.0 to use the current device's pixel scaling factor (and thus account for Retina resolution). 
    // Pass 1.0 to force exact pixel size. 
    UIGraphicsBeginImageContextWithOptions(newSize, NO, 0.0); 
    [image drawInRect:CGRectMake(0, 0, newSize.width, newSize.height)]; 
    UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext(); 
    UIGraphicsEndImageContext(); 
    return newImage; 
} 

請幫我解決這個問題。非常簡單但棘手的任務。我已經花了幾個小時... ...提前謝謝:)

回答

2

你不應該使用initWithImage方法。 如果要顯示確切的圖像,應使用initWithCustomView方法。

例如:

UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"image"]]; 
UIBarButtonItem *barButtonItem = [[UIBarButtonItem alloc] initWithCustomView:imageView]; 

你可以將其設置爲圖像視圖之前縮小圖像,如果你想。