iOS: cómo hacer transparentes las subvistas de una barra de navigation?

He estado experimentando algunos problemas con la animation del alfa de certaing subviews de mi barra de navigation. Aquí está el estado inicial de la barra:

introduzca la descripción de la imagen aquí

Aquí es lo lejos que llegué ahora:

introduzca la descripción de la imagen aquí

La cuestión es que tengo que hacer que todos estos botones "estrella", "nuevo" y otros botones networkingondos sean transparentes cuando la búsqueda esté activa (necesito networkingucir su alfa a cero). Estoy tratando de hacerlos transparentes en los siguientes methods del delegado:

- (void)searchBarCancelButtonClicked:(UISearchBar *)asearchBar - (void)searchBarTextDidBeginEditing:(UISearchBar *)searchBar - (void)searchBarTextDidEndEditing:(UISearchBar *)searchBar - (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar 

En todos ellos hago el mismo código:

 //parent is just a pointer of a search delegate, which points to view controller for (UIView * someViewToFade in parent.navigationController.navigationBar.subviews) { if (someViewToFade.tag == 88 || someViewToFade.tag == 11) { NSLog("someViewToFade.alpha before changes = %f", someViewToFade.alpha); someViewToFade.alpha = 0.0; //or 1.0, depending on the method } } 

Sin embargo, no pude lograr el resultado deseado de esta manera, aunque estoy obteniendo valores alfa correctos en ese NSLog, los botones no se desvanecen en absoluto. ¿Hay alguna sugerencia sobre qué puedo estar haciendo mal?

EDIT 1:

Creo que debería agregar una descripción de la jerarquía de vistas en mi caso. Bueno, tengo el UISegmentedConrol, que contiene estos botones networkingondos y también dos UIImageViews, el background para el control segmentado y el puntero triangular. Todas estas vistas se agregan a la barra de navigation, ya que son subvenciones. También hay una vista rectangular, que contiene la barra de búsqueda, y también se agrega como una subvista a la barra de navigation más adelante, por lo que es la vista superior de la jerarquía. Además, estoy animando mi barra de búsqueda simplemente animando el marco de su supervisión (ampliándola o condensándola, cuando ocurren los events anteriores en el delegado). Espero haberle dado toda la información necesaria.

Ha sido un time desde que hice la progtwigción de iOS. Es posible que aunque esté configurando el alfa, pero no activando una pintura. [UIView setNeedsDisplay] podría ayudar a actualizar el dibujo en el siguiente ciclo de dibujo.

Para una reference: ¿Cuál es la forma más robusta de forzar una UIView para networkingibujar?

1) Este es un problema de actualización de la UI, escriba esta statement después de cualquier código de actualización de la UI.

  [[NSRunLoop currentRunLoop] runUntilDate:[NSDate date]]; 

esto actualizará su GUI.

o

2) use el selector en el hilo principal y actualice su interfaz de usuario en el método selector.

  [self performSelectorOnMainThread:@selector(UpdateUIMethod) withObject:self waitUntilDone:NO];