TabBar / “Più View Controller” - possibile avere icone in colori diversi dal nero?
-
04-10-2019 - |
Domanda
E 'possibile avere le icone in un TabBar e / o il "Più controller di navigazione" in colori diversi dal grigio e nero? Ho provato a cambiare il colore del set di icone I per il controller della vista tramite di UITabBarItem
- (id)initWithTitle:(NSString *)title image:(UIImage *)image tag:(NSInteger)tag
metodo.
Il mio cliente pensa che l'interfaccia è troppo buio e mancanza di per illuminare in su con alcune icone colorate ...
Grazie!
Soluzione
No :( I pulsanti su una barra delle linguette o una barra sono disegnati con il canale alfa in modo da non avere colore anche se il .png trovi.
Quindi, è possibile creare una sottoclasse la TabBar o barra degli strumenti e implementare i propri pulsanti disegnare l'intera barra.
Altri suggerimenti
Venendo un po 'tardi per questo, ma il mio approccio per cambiare le icone più controller è stato a (e non è sicuro se Apple approverà esso) effettuare le seguenti operazioni:
id moreNavController = [tabs.moreNavigationController.viewControllers objectAtIndex:0];
if ([moreNavController respondsToSelector(@selector(view)]) {
UITableView *t = (UITableView*)[moreNavController view];
[t setDataSource:self];
}
Poi ho solo implementare i metodi UITableViewDatasourceProtocol
-(NSInteger)tableView:(UITableView*)tableView numberOfRowsInSection:(NSInteger)section{
id o =[tabs.moreNavigationController.viewControllers objectAtIndex:0];
return [o tableView:tableView numberOfRowsInSection:section]; //let the existing data source actually return the number of rows
}
e
-(UITableViewCell*)tableView:(UITableView*)tableView cellForRowAtIndexPath:(NSIndexPath*)indexPath {
/* configure cell as normal with what ever image in the imageView property*/
cell.imageView.image = <someimageobj>
}
Un'altra idea è quella di avere un altro file XIB che agisce come una barra degli strumenti o barra delle schede di sorta. Si può far sembrare esattamente lo stesso e anche animato in vista come una barra degli strumenti o scheda sarebbe. È quindi possibile passare le variabili globali attraverso l'App Delegato o tramite un Singleton per condividere con l'altra vista attiva, se necessario.
Un buon esempio di aggiunta di una visualizzazione secondaria in vista è il codice di esempio "Hidden cassetto" trovato qui (basta cambiare le dimensioni dello schermo in quanto questa versione si apre la vista in alto, mentre lo volete in basso).
http://cocoawithlove.com/2009/05 /intercepting-status-bar-touches-on.html
Se non puoi capirlo, fatemelo sapere e io ho il codice di lavoro a casa che posso postare qui per voi.
Rob