如何设置带边框的UIBarButtonItem

AMo*_*han 1 iphone cocoa-touch uibarbuttonitem ios

我用barbutton创建了如下视图

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

在此输入图像描述

它是这样的,但我想要它

在此输入图像描述

如何删除按钮的边框?

Nis*_*agi 16

用这个 :

UIBarButtonItem *barButton= [[UIBarButtonItem alloc] initWithCustomView:customButton];
Run Code Online (Sandbox Code Playgroud)

您可以使用您想要的任何视图初始化按钮.您可以在其中创建一个包含任何(可接受的)视图的按钮.

例如.

// 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];
Run Code Online (Sandbox Code Playgroud)

希望它能帮到你.


小智 15

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

// portrait
[self.navigationItem.leftBarButtonItem setBackgroundImage:[UIImage new] forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
// landscape
[self.navigationItem.leftBarButtonItem setBackgroundImage:[UIImage new] forState:UIControlStateNormal barMetrics:UIBarMetricsLandscapePhone];
Run Code Online (Sandbox Code Playgroud)