UIBarButton 背景图片显示问题
Posted
技术标签:
【中文标题】UIBarButton 背景图片显示问题【英文标题】:UIBarButton Background Image Display Issue 【发布时间】:2013-04-10 08:36:38 【问题描述】:我在 UIViewController 中添加了一个 UIToolBar 并在其中添加了 UIBarButton,还添加了用于在后台显示图像但图像不显示的代码
这是我的代码
UIBarButtonItem *b1=[[UIBarButtonItem alloc]initWithTitle:@" Home " style:UIBarButtonItemStyleBordered target:self action:@selector(home: )];
[b1 setImage:[UIImage imageNamed:@"b1image.png"]];
UIBarButtonItem *b3=[[ UIBarButtonItem alloc]initWithTitle:@" WorkOuts " style:UIBarButtonItemStyleBordered target:self action:nil];
[b1 setImage:[UIImage imageNamed:@"b3image.png"]];
UIBarButtonItem *b4=[[UIBarButtonItem alloc]initWithTitle:@" All Exercises " style:UIBarButtonItemStyleBordered target:self action:@selector(all:)];
[b1 setImage:[UIImage imageNamed:@"b4image.png"]];
NSArray *li=[[NSArray alloc]initWithObjects:b1,b3,b4, nil];
self.toolBar.items=li;
【问题讨论】:
你应该用initWithImage:style:target:action:
创建你的UIBarButtonItem
。
我尝试了这个,但是白色图像插入了真实图像
请问是否可以在 UIBarButtonItem 中设置 bacgrpnd 图片,请帮助 Desdenova
【参考方案1】:
查看documentation 的UIBarButtonItem
您可以使用 UIButton 来显示图像:
UIImage *image = [UIImage imageNamed:@"b1image"];
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
[button setFrame:CGRectMake(0.f, 0.f, image.size.width, image.size.height)];
[button setImage:image forState:UIControlStateNormal];
[button addTarget:self action:@selector(home:) forControlEvents:UIControlEventTouchUpInside];
UIBarButtonItem *b1 = [[UIBarButtonItem alloc] initWithCustomView:button];
这应该可以解决您的问题并正确设置图像。 setImage:
继承自另一个类,不会影响 UIBarButtonItem
。
【讨论】:
请再说一件事我放了多大的图片 请尝试图像不进入背景 通常UIToolbar
的高度为 44 像素,因此我建议高度为 30 像素,大小取决于您想要显示的内容。您甚至可以完全更改工具栏的大小以满足您的需要。 @见***.com/questions/2135407/…
setBackButtonBackgroundImage:forState:barMetrics:
不适用于 UIBarButtonItem
它会,但UIBarButtonItem
的正确方法是initWithImage:style:target:action:
以上是关于UIBarButton 背景图片显示问题的主要内容,如果未能解决你的问题,请参考以下文章
UIBarButton 未在 UINavigationBar 中显示
UIBarButton 不会显示在我的 UINavigationController
在 StoryBoard 中为 UIBarButton 显示图像而不是文本
iOS 在整个导航控制器中显示相同的 UIBarButton