En mi barra de navegación, tengo un par de BarButtonitems de BarButtone que tienen íconos personalizados (las imágenes de iconos son blancas, que funcionaron bien con el esquema de color básico de iOS 6).
Bajo iOS 7, cargando las imágenes usando InitWithtitle (ver el fragmento de código 1) reemplaza el color "blanco" en el icono con el tinte global adecuado (un color específico de azul oscuro en este caso)
Fragmento de código 1:
UIBarButtonItem *refreshButton = [[UIBarButtonItem alloc] initWithTitle:@"" style:(UIBarButtonItemStyle) UIBarButtonSystemItemCancel target:(self) action:@selector(refreshList)];
refreshButton.image = [UIImage imageNamed:@"RefreshIcon.png"];
Sin embargo, necesitaba usar InitWithCustomView para superar un cambio extraño en el comportamiento que estaba causando que los íconos se alejaran fuera de la vista. La idea básica era establecer específicamente el tamaño de los iconos. InitWithCustomView resolvió el problema de tamaño, pero no muestra las imágenes del botón con el tinte global, se muestran en el color de la imagen (blanco). El fragmento de código 2 muestra cómo estoy creando el botón con InitWithCustomView.
Fragmento 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];
Todo este código se encuentra, por supuesto, en (nulo) ViewDidload. He probado cosas como:
barCustomButton2.tintColor = [UIColor blackColor]; //doesn't work
o [Barbuttonappearance settintcolor: [Uicolor BlackColor]]; // no funciona
y no anulan el color blanco de la imagen. ¿Es casi como si la creación de la vista personalizada tenga lugar después de que la vista mira el color de tinte global?
¿Cómo puedo asegurar que el ícono del botón adquiere el tinte global?
¡Gracias!