2012-05-23 155 views
5

使用UIBarbuttonItem,initWithImage我得到一張我想要的小圖片。如何更改UIBarButtonItem圖像大小

我覺得有沒有辦法調整圖像的大小。

UIedgeInsetMake根本不起作用。調整picutre的大小也不會運行(像素)。 我有一個@ 2x 48x48圖標和一個正常的24x24。創建一個更大的空白邊框的新圖片無法運行。

如果我使用20x20,它會像素化。無論。

任何解決方案?謝謝!

回答

1

如果你想改變按鈕的大小來匹配圖片,最好創建一個UIButton並製作UIBarButtonItem自定義。在UIBarButtonItem中initWithImage圖像被縮放以適應UIBarButtonItem。

手錶this有關如何做到這一點的更多信息。

+0

謝謝您的回答,但按鈕的大小是好的,實際上它是完美的。這是我想要的更小的圖像。 –

3

您可以使用自定義BarbuttonItem設置圖像,利用波紋管法調整與標題尺寸大小:

+(UIBarButtonItem *)createToolBarButtonItemWithTitle:(NSString *)t target:(id)tgt action:(SEL)a 
{ 
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom]; 
// Since the buttons can be any width we use a thin image with a stretchable center point 
UIImage *buttonImage = [[UIImage imageNamed:@"toolbarbutton_button_mouseup.png"] stretchableImageWithLeftCapWidth:5 topCapHeight:0]; 
UIImage *buttonPressedImage = [[UIImage imageNamed:@"toolbarbutton_button_mouseover.png"] stretchableImageWithLeftCapWidth:5 topCapHeight:0]; 
[[button titleLabel] setFont:[UIFont boldSystemFontOfSize:12.0f]]; 
//[[button titleLabel] setFont:[UIFont fontWithName:@"Futura-Medium" size:12.0]]; 
[button setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; 
[button setTitleColor:[UIColor whiteColor] forState:UIControlStateHighlighted]; 
[[button titleLabel] setShadowOffset:CGSizeMake(0.0, 1.0)]; 

CGRect buttonFrame = [button frame]; 
buttonFrame.size.width = [t sizeWithFont:[UIFont boldSystemFontOfSize:12.0]].width + 24.0; 

//Applicable only for iPhone FrameFun 
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone && [[[NSUserDefaults standardUserDefaults] stringForKey:@"is_Landscape"] isEqualToString:@"landscape"]) { 
    buttonFrame.size.height = 23.0; 
}else { 

    buttonFrame.size.height = buttonImage.size.height; 
} 

[button setFrame:buttonFrame]; 

[button setBackgroundImage:buttonImage forState:UIControlStateNormal]; 
[button setBackgroundImage:buttonPressedImage forState:UIControlStateHighlighted]; 

[button setTitle:t forState:UIControlStateNormal]; 

[button addTarget:tgt action:a forControlEvents:UIControlEventTouchUpInside]; 
UIBarButtonItem *buttonItem = [[UIBarButtonItem alloc] initWithCustomView:button]; 
return [buttonItem autorelease]; 

} 

這種方法讓你做出按鈕的慾望像動力大小。 在這裏,我用stretchableImageWithLeftCapWidth調整圖像。我認爲它會幫助你。您也可以使用整個方法來製作自定義BarButton。

+0

不錯的代碼,但它不是我要找的。我不想「畫」一個自定義按鈕。我想要一個經典的barbuttonItem,裏面的圖片比默認的裏面的圖片小一些。 –

5

這可以通過以下的UIBarButtonItem

  • 變化

    1. 開大小檢查來實現,「欄項目」的價值觀 - >圖像插入 - >上/下/左/右。

    試試看......

  • +0

    這對我來說很完美。尤其適用於.PDF圖像 –