Quiero crear un UIBarButtonItem con una imagen personalizada, pero no quiero el borde que el iPhone agrega, ya que mi Imagen tiene un borde especial.UIBarButtonItem con imagen personalizada y sin borde
Es lo mismo que el botón Atrás, pero un botón de avance.
esta aplicación es para un proyecto de las instalaciones, por lo que no me importa si Apple rechace o apruebe o que le gusta :-)
Si utilizo el initWithCustomView: v propiedad de la UIBarButtonItem, lo puedo hacer :
UIImage *image = [UIImage imageNamed:@"right.png"];
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
[button setBackgroundImage: [image stretchableImageWithLeftCapWidth:7.0 topCapHeight:0.0] forState:UIControlStateNormal];
[button setBackgroundImage: [[UIImage imageNamed: @"right_clicked.png"] stretchableImageWithLeftCapWidth:7.0 topCapHeight:0.0] forState:UIControlStateHighlighted];
button.frame= CGRectMake(0.0, 0.0, image.size.width, image.size.height);
[button addTarget:self action:@selector(AcceptData) forControlEvents:UIControlEventTouchUpInside];
UIView *v=[[UIView alloc] initWithFrame:CGRectMake(0.0, 0.0, image.size.width, image.size.height) ];
[v addSubview:button];
UIBarButtonItem *forward = [[UIBarButtonItem alloc] initWithCustomView:v];
self.navigationItem.rightBarButtonItem= forward;
[v release];
[image release];
Esto funciona, pero si tengo que repetir este proceso en 10 vistas, esto no es SECO.
Supongo que tengo que hacer una subclase, ¿pero qué?
- NSView?
- UIBarButtonItem?
gracias,
cordiales,
Gracias por compartir su código, eso es todo lo que necesitaba :). – Max
Todo el mundo, utilicé la respuesta proporcionada por San el 6 de febrero. Me llevó los 5 minutos integrarme en mi Storyboard, y funcionó a la perfección. La propiedad Selector se encuentra en Connections Inspector of IB. Controle el arrastre desde UIButton al objeto ViewController y los métodos aparecerán. Toca el método que quieras y prácticamente has terminado. Lo único que queda sería una limpieza del código. Se usó btnXXXXX.hidden para ocultar y mostrar para reemplazar barbuttonitem = nil. Pero este método fue fácil y muy limpio. – user589642