How to make a UIBarButtonItem like this

2019-02-19 06:05发布

问题:

How can I make a UIBarButtonItem like this:

I can't find it in the SystemItem values.

Thanks

回答1:

That's probably using something like:

[[UIBarButtonItem alloc] initWithImage:@"info.png" style:UIBarButtonItemStyleBordered target:nil action:nil]

I tried with:

UIBarButtonItem *item = [[UIBarButtonItem alloc] initWithCustomView:[UIButton buttonWithType:UIButtonTypeInfoLight]];
item.style = UIBarButtonItemStyleBordered;

but it seems like with a custom view the bordered style doesn't get applied.



回答2:

The Image button which you have called info button.It's an system button,

Use below to get it as your rightBarButtonItem

UIButton* myInfoButton = [UIButton buttonWithType:UIButtonTypeInfoLight]; 
[myInfoButton addTarget:self action:@selector(InfoButtonClicked:) forControlEvents:UIControlEventTouchUpInside];
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:myInfoButton];

Here is the documentation link to UIButtonType



回答3:

Swift's version of @Jhaliya's answer for quick copy-paste:

let infoButton = UIButton(type: .InfoLight)

infoButton.addTarget(self, action: "InfoButtonClicked:", forControlEvents: .TouchUpInside)

let infoBarButtonItem = UIBarButtonItem(customView: infoButton)

navigationItem.rightBarButtonItem = infoBarButtonItem