Change the width of an UIBarButtonItem [duplicate]

2019-02-17 00:07发布

问题:

This question already has an answer here:

  • Change width of a UIBarButtonItem in a UINavigationBar 6 answers
  • Add image to UIBarButtonItem button 7 answers

How can I change the width of an UIBarButtonItem to 29px? The property width does not work and I don't want to create a UIButton and use the initWithCustomView because I want the square background to adjust to the navigation bar color. I'm using the initWithImage to init the UIBarButtonItem.

Here is my button with a current width of 37px. I want to set to 29px.

回答1:

you cant. If you want custom width you will need to use initWithCustomView



回答2:

You can do it by dropping an image to the bar button item from the interface builder and changing the width of the custom view with this code:

CGRect frame = self.navigationItem.leftBarButtonItem.customView.frame;
frame.size.width = 141;
self.navigationItem.leftBarButtonItem.customView.frame = frame;