iOS 6 - UIBarButtonItem setStyle不起作用

时间:2014-03-11 10:33:11

标签: ios objective-c ios6 uibarbuttonitem uitoolbar

我在UIBarButtonItem中有一个UIToolBar。我已经像这样设置了代码:

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显示边框,但只显示内置操作图标。知道我可能会缺少什么吗?

3 个答案:

答案 0 :(得分:1)

在搜索此问题时,我发现只有在使用UIBarButtonItemStyleBordered初始化UIBarButtonItem时才会应用所需的样式 - initWithImage

所以,也许你可以获得Action按钮的图像并尝试这个

UIBarButtonItem *barbutton = [[UIBarButtonItem alloc] initWithImage:@"action.png" style:UIBarButtonItemStyleBordered target:nil action:nil];
[barbutton setStyle:UIBarButtonItemStyleBordered];

告诉我这是否适合你。干杯!

<小时/> 修改

在测试您自己的代码后,它似乎对我来说很好。这条线

[barbutton setStyle:UIBarButtonItemStyleBordered];

会像这样做

enter image description here

并评论上面的一行,我得到一个像这样的按钮

enter image description here

这不是你想要的吗?

答案 1 :(得分:0)

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

- (void)setBackgroundImage:(UIImage *)backgroundImage
              forState:(UIControlState)state
                 style:(UIBarButtonItemStyle)style
            barMetrics:(UIBarMetrics)barMetrics

它为指定的状态,样式和指标设置背景图像。有关详细信息,请参阅[Apple文档] [1]

希望它会对你有帮助。

答案 2 :(得分:0)

使用以下代码来解决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];