Na minha barra de navegação, tenho alguns bancos de direita que possuem ícones personalizados (as imagens do ícone são brancas, que funcionaram bem com o esquema de cores básico do iOS 6).
Sob iOS 7, carregando as imagens usando initwithtitle (consulte o snippet 1) substitui a cor "branca" no ícone pela tonalidade global adequada (uma cor específica de azul escuro neste caso)
Snippet de código 1:
UIBarButtonItem *refreshButton = [[UIBarButtonItem alloc] initWithTitle:@"" style:(UIBarButtonItemStyle) UIBarButtonSystemItemCancel target:(self) action:@selector(refreshList)];
refreshButton.image = [UIImage imageNamed:@"RefreshIcon.png"];
No entanto, eu precisava usar o initwithcustomview para superar uma estranha mudança de comportamento que estava fazendo com que os ícones se afastem da vista. A idéia básica era definir especificamente o tamanho dos ícones. O initWithCustomview resolveu o problema de dimensionamento, mas não exibe as imagens do botão com o tom global, elas são exibidas na cor da imagem (branca). O código Snippet 2 mostra como estou criando o botão com initwithcustomview.
Snippet de código 2:
CGRect frameCustomButton2 = CGRectMake(0.0, 0.0, 18.0, 18.0);
UIButton *customButton2 = [[UIButton alloc] initWithFrame:frameCustomButton2];
[customButton2 setBackgroundImage:iconRefreshButton forState:UIControlStateNormal];
UIBarButtonItem *barCustomButton2 =[[UIBarButtonItem alloc] initWithCustomView:customButton2 ];
barCustomButton2.image = iconRefreshButton;
[customButton2 addTarget:self action:@selector(refreshList) forControlEvents:UIControlEventTouchUpInside];
É claro que todo esse código está no ViewDidload (void). Eu tentei coisas como:
barCustomButton2.tintColor = [UIColor blackColor]; //doesn't work
ou [Barbuttonappearância SettintColor: [Uicolor BlackColor]]; // não funciona
E eles não substituem a cor branca da imagem. É quase como se a criação da visualização personalizada ocorresse depois que a exibição olhar para a cor global de tonalidade?
Como posso garantir que o ícone do botão assuma a tonalidade global?
Obrigado!