Quiero crear un UIBarButtonItem con una imagen personalizada, pero no quiero el borde que agrega el iPhone, ya que mi imagen tiene un borde especial.
Es lo mismo que el botón de retroceso pero un botón de avance.
Esta aplicación es para un proyecto inHouse, así que no me importa si Apple la rechaza, la aprueba o le gusta :-)
Si utilizo la propiedad initWithCustomView: v de UIBarButtonItem, puedo hacerlo:
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,
Saludos,