setFinishedSelectedImage:withFinishedUnselectedImage:
obsoleto in iOS7. Apple recommends per utilizzare setter di image
e selectedImage
con UIImageRenderingModeAlwaysOriginal
invece. Non riesco a trovare alcun esempio di come utilizzare UIImageRenderingModeAlwaysOriginal
. Quindi la domanda è molto semplice: come impostare le immagini per UITabBarItem
in iOS7?UITabBarItem setFinishedSelectedImage: deprecato in iOS7
risposta
Se si sta tentando di ottenere la visualizzazione dell'immagine reale su UITabBar, utilizzare il seguente codice.
[yourTabBarItem setImage:[[UIImage imageNamed:@"more.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]];
e se si desidera visualizzare l'immagine nello stato originale per il selezionato quindi utilizzare il seguente
[yourTabBarItem setSelectedImage:[[UIImage imageNamed:@"more.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]];
questi due sono un'alternativa al
setFinishedSelectedImage: withFinishedUnselectedImage:
+1 funziona perfettamente. Questa soluzione merita più attenzione rispetto all'iniziativa InitWithTitle IDE consigliata: image: selectedImage: in sostituzione. – justinkoh
Il setFinishedSelectedImage
è deprecato perché Apple vuole dirigere le interfacce verso l'uso delle immagini del modello e il colore che si seleziona (o il blu predefinito.) Così, il facile predefinito fa gli elementi della barra delle schede in questo modo.
Se è necessario utilizzare ancora l'immagine Icona come progettato, l'immagine viene creata con la modalità di rendering per Sempre originale. Come:
[[UIImage imageNamed:@"YourIcon.png"] imageWithRenderingMode: UIImageRenderingModeAlwaysOriginal];
Per impostare l'icona è necessario per ottenere il tabBarItem
dal ViewController
. Quello che mi mancava nella mia app era che ciascuna delle mie schede aveva un NavigationController
che avvolgeva il controller della vista superiore nella scheda. La maggior parte delle risposte a questo argomento non menziona il fatto di avere il controller di navigazione e questo è stato fondamentale per farlo funzionare nella mia app.
Quindi, nella sottoclasse UITableViewContoller ho aggiunto quanto segue a viewDidLoad.
- (void)viewDidLoad
{
[super viewDidLoad];
...
[self.navigationController.tabBarItem setSelectedImage:[[UIImage imageNamed:@"MySelectedIcon.png"]
imageWithRenderingMode: UIImageRenderingModeAlwaysOriginal]];
}
Il risultato era l'icona come progettato quando la scheda è stata selezionata. Se si interrompe la chiamata al metodo imageWithRenderingMode, l'icona verrà considerata come un modello colorato con tintColor. Spero che questo ti aiuti.
class TabBarController: UITabBarController {
override func viewDidLoad() {
super.viewDidLoad()
self.tabBar.backgroundImage = UIImage()
self.tabBar.shadowImage = UIImage()
}
}
Segui questo [URL] (http://stackoverflow.com/help) sarà utile per aiutarti a migliorare la qualità dei contenuti –
Partenza 2013 WWDC video "Novità di Cocoa Touch". Penso che sia spiegato in quel video. – borrrden