Pergunta

UIImageView *navBarImageView = [[UIImageView alloc] initWithImage:navBarImage];
[navBarImageView setFrame:CGRectMake(0, 0, 320, 44)];
self.navigationItem.titleView = navBarImageView;
[navBarImageView release];

Estou tentando adicionar uma imagem ao meu NavigationBar, mas quando usei o código como listado acima, ela coloca a imagem no NavigationBar, mas deixa uma lacuna cinza à esquerda e à direita da imagem. A imagem foi criada em 320x44, não sei por que a redimensiona, apesar do fato de estar definindo o quadro.

Foi útil?

Solução

Isso ... provavelmente não é assim que você quer fazer isso - não é o que titleView é para. A maneira usual de fazer um fundo de barra de navegação personalizado é criar uma categoria em UINavigationBar, igual a:

 @implementation UINavigationBar(MyCustomBackground)
 - (void)drawRect:(CGRect)r
 {
      [[UIImage imageNamed:@"my-navigation-background.png"] drawInRect:self.bounds];
 }
 @end

Jogue isso em um arquivo .m em seu projeto e você verá todas as suas barras de navegação usarem "my-navigation-background.png" como seu plano de fundo.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top