可以在导航栏中为UIBarButtonItem设置背景图像,但不能在底部工具栏中设置背景图像

时间:2012-08-13 23:22:35

标签: ios uibarbuttonitem uitoolbar

因此,在将项目添加到导航栏时可以正常工作,但是当我通过界面构建​​器将其添加到底栏中设置的工具栏时,背景图像不会显示。

UIBarButtonItem *resetButtonItem = [[UIBarButtonItem alloc]initWithTitle:@"Reset" style:UIBarButtonItemStylePlain target:self action:@selector(resetCriteria:)];
UIImage *img = [UIImage imageNamed:@"someImage.png"];
    img = [img stretchableImageWithLeftCapWidth:5 topCapHeight:20];
    [resetButtonItem setBackgroundImage:img forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];

self.toolbarItems   = [NSArray arrayWithObjects: resetButtonItem, nil];

不仅没有出现背景,也没有其他行为也能正常工作(但在将这些条形图项添加到导航栏时它们可以正常工作)

1 个答案:

答案 0 :(得分:2)

您应该尝试以下方法来执行相同操作。

在UIBarButtonItem中设置自定义视图。

UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
btn.frame = CGRectMake(0, 0, 30, 30);
[btn setImage:[UIImage imageNamed:@"someImage.png"] forState:UIControlStateNormal];
[btn addTarget:self action:@selector(resetCriteria:) forControlEvents:UIControlEventTouchUpInside];

UIBarButtonItem *Item = [[UIBarButtonItem alloc] initWithCustomView:btn];
self.toolbarItems   = [NSArray arrayWithObject:Item];
[Item release];

我们可以使用CustomView init方法在UIBarButtonItem中设置任何视图。 我们可以设置ImageView。但ImageView不处理UIControl事件。