2010-05-27 12 views
6

He utilizado el siguiente código para crear un botón en la barra de navegación con una imagen.iPhone SDK: ¿cómo agregar una imagen a un UIBarButton?

Puedo ver la imagen pero también puedo ver el borde del botón alrededor de ella. Mi pregunta es, ¿cómo puedo deshacerme del borde del botón? Todo lo que quiero ver es la imagen en la barra de navegación, sin borde.

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

Gracias de antemano. Cualquier punteros, enlaces para leer más o ejemplos apreciados.

Respuesta

20

Aquí hay un fragmento de código de uno de mis proyectos actuales. Carga una imagen con transparencia para 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]; 
+0

Gracias Shaggy Frog. Agregué esta línea para que haga algo cuando se presiona. [settingsButton addTarget: acción propia: @selector (openSettings :) forControlEvents: UIControlEventTouchUpInside]; – butchcowboy

+0

Tenía esa línea allí pero la eliminé, supongo que debería haberla dejado. :) –

Cuestiones relacionadas