Por que existem lacunas à esquerda/direita quando adiciono uma imagem ao meu NavigationBar?
-
22-09-2019 - |
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.
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