iOS 6-UIBarButtonItem设置样式不工作

iOS 6-UIBarButtonItem设置样式不工作,ios,objective-c,ios6,uibarbuttonitem,uitoolbar,Ios,Objective C,Ios6,Uibarbuttonitem,Uitoolbar,我在UIToolBar中有一个UIBarButtonItem。我将代码设置为: UIBarButtonItem *barbutton=[[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemAction target:self action:@selector(actionSheet:)]; [barbutton setStyle:UIBarButtonItemStyleBordered]; [toolBa

我在
UIToolBar
中有一个
UIBarButtonItem
。我将代码设置为:

UIBarButtonItem *barbutton=[[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemAction target:self action:@selector(actionSheet:)];
[barbutton setStyle:UIBarButtonItemStyleBordered];
[toolBar setItems:[NSArray arrayWithObjects: [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil], barButton, nil]] ;
[toolBar setClipsToBounds:YES];

我希望barButton显示一个边框,但只有内置的动作图标显示出来。你知道我可能遗漏了什么吗?

在搜索这个问题时,我发现当你仅使用
initWithImage
初始化
UIBarButtonItem
时,就会应用你想要的样式-
uibarbuttonimStyleBordered

所以,也许你可以得到一个动作按钮的图像,然后试试这个

UIBarButtonItem *barbutton = [[UIBarButtonItem alloc] initWithImage:@"action.png" style:UIBarButtonItemStyleBordered target:nil action:nil];
[barbutton setStyle:UIBarButtonItemStyleBordered];
告诉我这是否适合你。干杯


编辑

在测试您自己的代码后,它似乎对我来说工作良好。线路

[barbutton setStyle:UIBarButtonItemStyleBordered];
将使动作对撞像这样

在评论上面这一行时,我得到了一个这样的按钮


这不是你想要的吗?

在iOS 6中,你可以使用UIBarButtonItem类的新方法:

- (void)setBackgroundImage:(UIImage *)backgroundImage
              forState:(UIControlState)state
                 style:(UIBarButtonItemStyle)style
            barMetrics:(UIBarMetrics)barMetrics
它为指定的状态、样式和度量设置背景图像。有关更多详细信息,请访问[苹果文档][1]


希望它能对您有所帮助。

在ios 6发行版中使用以下代码。在IOS 7上也可以

UIButton* btton = [UIButton buttonWithType:UIButtonTypeCustom];
[btton setFrame:CGRectMake(0, 0, 30, 30)];
[btton addTarget:self action:@selector(actionMethod) forControlEvents:UIControlEventTouchUpInside];
[btton setImage:[UIImage imageNamed:@"image.png"] forState:UIControlStateNormal];

UIBarButtonItem *rightButtonItem  = [[UIBarButtonItem alloc] initWithCustomView:btton];

对这就是我想要的。出于某种原因,这似乎没有发生在我身上(一定要用xib文件查看你的
工具栏
插座。然后为当前项目尝试产品>清理。这会对UIBarButton产生什么影响?我不知道,但清理项目有时会删除随机错误…你的确切代码对我有效,所以我不知道你那边可能有什么问题。嗯。这很奇怪。same代码在UINavigationBar上工作,但在UIToolBar上不工作。