2013-05-07 172 views
1

我已经创建的视图与barbutton出边界设定的UIBarButtonItem如下如何使用

self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"settingsicon.png"] style:UIBarButtonItemStylePlain target:self action:@selector(settingsButtonClicked:)]; 

enter image description here

它正在添加这样 但我想把它当作

enter image description here

我怎样才能删除按钮的边界?

回答

16

使用此:

UIBarButtonItem *barButton= [[UIBarButtonItem alloc] initWithCustomView:customButton]; 

可以初始化你希望的任何视图按钮。你可以制作一个带有任何(可接受)视图的按钮。

例如。

// GRAPHICAL BUTTON FRAMEWORK 
    UIButton* btton = [UIButton buttonWithType:UIButtonTypeCustom]; 
    [btton setFrame:CGRectMake(0, 0, 30, 30)]; 
    [btton addTarget:self action:@selector(SOMEROUTINE) forControlEvents:UIControlEventTouchUpInside]; 
    [btton setImage:[UIImage imageNamed:@"SOME IMAGE"] forState:UIControlStateNormal]; 
    UIBarButtonItem* barButton = [[UIBarButtonItem alloc] initWithCustomView:btton]; 

希望它可以帮助你。

+0

最受欢迎.. – 2013-05-07 09:00:32

15

的另一种方法是删除按钮的背景图片:

// portrait 
[self.navigationItem.leftBarButtonItem setBackgroundImage:[UIImage new] forState:UIControlStateNormal barMetrics:UIBarMetricsDefault]; 
// landscape 
[self.navigationItem.leftBarButtonItem setBackgroundImage:[UIImage new] forState:UIControlStateNormal barMetrics:UIBarMetricsLandscapePhone]; 
+1

非常感谢你,对我来说这是最好的解决方案,如果你只是想删除的按钮的背景,例如,如果您想要在iOS6和iOS7中保持相同的按钮样式。 – fabioalmeida 2013-11-18 15:12:42

+0

完美!最简单的解决方案 – 2014-12-26 14:42:35