Quero criar um UIBarButtonItem com uma imagem personalizada, mas não quero a borda que o iPhone adiciona, pois minha imagem tem uma borda especial.
É o mesmo que o botão Voltar, mas é um botão Avançar.
Este aplicativo é para um projeto interno, então não me importo se a Apple o rejeitar, aprovar ou gostar :-)
Se eu usar a propriedade initWithCustomView: v do UIBarButtonItem, posso fazer isso:
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];
Isso funciona, mas se eu tiver que repetir esse processo em 10 visualizações, isso não é DRY.
Suponho que tenho que fazer uma subclasse, mas o quê?
- NSView?
- UIBarButtonItem?
obrigado,
Saudações,