UIBarbuttonItem、initWithImage を使用して、小さくしたい画像を取得します。
画像のサイズを変更する方法は絶対にないように感じます。
UIedgeInsetMake は一切動作しません。picutreのサイズ変更も機能しません(ピクセル化)。@2x 48x48 アイコンと通常の 24x24 アイコンがあります。空の境界線を大きくして新しい画像を作成しても機能しません。
20x20 を使用すると、ピクセル化されます。何があっても。
解決策はありますか?ありがとう!
UIBarbuttonItem、initWithImage を使用して、小さくしたい画像を取得します。
画像のサイズを変更する方法は絶対にないように感じます。
UIedgeInsetMake は一切動作しません。picutreのサイズ変更も機能しません(ピクセル化)。@2x 48x48 アイコンと通常の 24x24 アイコンがあります。空の境界線を大きくして新しい画像を作成しても機能しません。
20x20 を使用すると、ピクセル化されます。何があっても。
解決策はありますか?ありがとう!
次のメソッドを使用して、カスタム 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 を作成することもできます。
ボタンのサイズを画像に合わせて変更したい場合は、UIButton を作成し、UIBarButtonItem をカスタムにすることをお勧めします。UIBarButtonItem initWithImage イメージは、UIBarButtonItem に合わせてスケーリングされます。
その方法の詳細については、このanserをご覧ください。