5

UIBarbuttonItem、initWithImage を使用して、小さくしたい画像を取得します。

画像のサイズを変更する方法は絶対にないように感じます。

UIedgeInsetMake は一切動作しません。picutreのサイズ変更も機能しません(ピクセル化)。@2x 48x48 アイコンと通常の 24x24 アイコンがあります。空の境界線を大きくして新しい画像を作成しても機能しません。

20x20 を使用すると、ピクセル化されます。何があっても。

解決策はありますか?ありがとう!

4

3 に答える 3

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 を作成することもできます。

于 2012-05-23T09:53:47.713 に答える
1

ボタンのサイズを画像に合わせて変更したい場合は、UIButton を作成し、UIBarButtonItem をカスタムにすることをお勧めします。UIBarButtonItem initWithImage イメージは、UIBarButtonItem に合わせてスケーリングされます。

その方法の詳細については、このanserをご覧ください。

于 2012-05-23T08:54:20.373 に答える