因此,在将项目添加到导航栏时可以正常工作,但是当我通过界面构建器将其添加到底栏中设置的工具栏时,背景图像不会显示。
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];
不仅没有出现背景,也没有其他行为也能正常工作(但在将这些条形图项添加到导航栏时它们可以正常工作)
答案 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事件。