XCode: cambiare lo stile e/o il colore della Status Bar in Objective-C

A partire da iOS7 lo stile della status bar del dispositivo può essere modificato in due modi:

  • per-Controller, ovvero relativamente a ciascun controller.
  • per-Application, ovvero relativamente all'intera applicazione.

Per-Controller

La modalità predefinita per iOS7 e superiori è la prima, il che significa che il sistema si aspetta che le modifiche vengano effettuate all'interno di ciascun  controller. Per ottenere questo risultato occorre aggiungere la seguente riga di codice al metodo viewDidLoad:

E quindi implementare il metodo preferredStatusBarStyle, facendo in modo che restituisca lo stile desiderato. Ad esempio, se abbiamo impostato uno sfondo scuro è probabile che ci servirà uno stile che preveda un contenuto chiaro come nell'esempio seguente:

Mentre in caso di sfondo chiaro è probabile che ci troveremo meglio con lo stile predefinito, che prevede appunto un contenuto scuro:

E così via.

Per-Application

Se vogliamo modificare lo stile della Status Bar per tutti i controller della nostra applicazione, la prima cosa da fare è cambiare l'impostazione predefinita. Per far questo occorre aggiungere una chiave all'elenco delle proprietà personalizzate dell'applicazione, accessibili mediante il file info.plist nella cartella /Supporting Files/ oppure selezionando il Target relativo all'applicazione stessa e posizionandosi nella tab denominata Info:

app-info.plist
Due diversi modi per accedere alle proprietà personalizzate dell'applicazione.

 

La proprietà che va aggiunta è la seguente:

E' possibile controllare di averla aggiunta correttamente osservando l'elenco modificato tramite l'interfaccia utente di XCode:

view-controller.based

Una volta fatto questo è sufficiente aggiungere la seguente riga di codice al metodo didFinishLaunchingWithOptions del file AppDelegate.m relativo alla nostra applicazione:

Per ulteriori approfondimenti su come personalizzare la Status Bar consigliamo la lettura:

Buono studio e... felice sviluppo!

 

About Ryan

IT Project Manager, Web Interface Architect e Lead Developer di numerosi siti e servizi web ad alto traffico in Italia e in Europa. Dal 2010 si occupa anche della progettazione di App e giochi per dispositivi Android, iOS e Mobile Phone per conto di numerose società italiane. Microsoft MVP for Development Technologies dal 2018.

View all posts by Ryan

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.