UITabBarItem setFinishedSelectedImage: desaprobado en iOS7

setFinishedSelectedImage:withFinishedUnselectedImage: está en desuso en iOS7. Apple recomienda utilizar sets de image y image selectedImage con UIImageRenderingModeAlwaysOriginal en UIImageRenderingModeAlwaysOriginal lugar. No puedo encontrar ningún ejemplo de cómo usar UIImageRenderingModeAlwaysOriginal . Entonces, la pregunta es muy simple: ¿cómo configurar imágenes para UITabBarItem en iOS7?

Si está intentando lograr mostrar la image real en el UITabBar, use el siguiente código.

 [yourTabBarItem setImage:[[UIImage imageNamed:@"more.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]]; 

y si desea mostrar la image en el estado original para el seleccionado, use lo siguiente

 [yourTabBarItem setSelectedImage:[[UIImage imageNamed:@"more.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]]; 

estos dos son alternativos a

 setFinishedSelectedImage: withFinishedUnselectedImage: 

El setFinishedSelectedImage está en desuso debido a que Apple desea dirigir las interfaces hacia el uso de las imágenes de plantilla y el tintColor que select (o el valor pnetworkingeterminado azul). Por lo tanto, el valor pnetworkingeterminado simple los Elementos de la barra de tabs de esa manera.

Si aún necesita utilizar la image del icono como fue diseñada, cree la image con el modo de reproducción para Siempre original. Me gusta:

 [[UIImage imageNamed:@"YourIcon.png"] imageWithRenderingMode: UIImageRenderingModeAlwaysOriginal]; 

Para configurar el icono, necesita get el tabBarItem desde el ViewController . Lo que eché de less en mi aplicación fue que cada una de mis tabs tenía un control de NavigationController envolvía el controller de vista superior en la pestaña. La mayoría de las respuestas sobre este tema no mencionan cómo get el control de navigation y esa fue la key para que funcione en mi aplicación.

Entonces, en mi subclass UITableViewController agregué lo siguiente para verDidLoad.

 - (void)viewDidLoad { [super viewDidLoad]; ... [self.navigationController.tabBarItem setSelectedImage:[[UIImage imageNamed:@"MySelectedIcon.png"] imageWithRenderingMode: UIImageRenderingModeAlwaysOriginal]]; } 

El resultado fue el icono tal como se diseñó cuando se seleccionó la pestaña. Si deja de lado la llamada al método imageWithRenderingMode, el icono se tratará como una plantilla coloreada con el tintColor. Espero que esto ayude.

 class TabBarController: UITabBarController { override func viewDidLoad() { super.viewDidLoad() self.tabBar.backgroundImage = UIImage() self.tabBar.shadowImage = UIImage() } }