butchcowboy
butchcowboy

Reputation: 565

iPhone SDK: How to add an image to a UIBarButton?

I have used the code below to create a button on the nav bar with an image.

I can see the image but I can also see the border of the button around it. My question is, how can I get rid of the button border. All I want to see is the image on the nav bar, no border.

UIBarButtonItem *settingsBtn = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"icon_prefs.png"] style:UIBarButtonItemStylePlain target:self action:@selector(openSettings:)];
[[self navigationItem] setLeftBarButtonItem:settingsBtn];
[settingsBtn release];

Thanks in advance. Any pointers, links to read further or examples appreciated.

Upvotes: 5

Views: 9875

Answers (1)

Shaggy Frog
Shaggy Frog

Reputation: 27601

Here's a code fragment from one of my current projects. It loads an image with transparency for a UIBarButtonItem:

UIImage* image = [UIImage imageNamed:@"some-image.png"];
CGRect frame = CGRectMake(0, 0, image.size.width, image.size.height);
UIButton* someButton = [[UIButton alloc] initWithFrame:frame];
[someButton setBackgroundImage:image forState:UIControlStateNormal];
[someButton setShowsTouchWhenHighlighted:YES];
UIBarButtonItem* someBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:someButton];
[self.navigationItem setRightBarButtonItem:someBarButtonItem];
[someBarButtonItem release];
[someButton release];

Upvotes: 19

Related Questions