Tutorial 025 - Splash Screen e tutorial all'opera in iPhone Simulator Oggi vedremo come creare una Splash Screen e come personalizzare la sua durata di visualizzazione nella nostra applicazione. Premettiamo che come Splash Screen Apple raccomanda l’uso di una semplice immagine di dimensioni 320×480 pixel di nome Default.png da inserire nel bundle dell’app. Questa, sempre secondo le raccomandazioni Apple, dovrebbe contenere una rappresentazione dell’applicazione avviata, in modo da “illudere” l’utente con un’apparente riduzione dei tempi di caricamento dell’app stessa. Certo è che, nonostante le raccomandazioni Apple, potreste avere esigenze diverse e aver bisogno di costruire una vostra View personalizzata da usare ad esempio come Disclaimer. In questo caso, molto probabilmente, vorreste sicuramente poter gestire la sua durata, o anche solo la sua “cancellazione” tramite un tocco.

Vediamo una possibile soluzione. Apriamo Xcode, creiamo un nuovo progetto, dall’elenco dei template disponibili scegliamo “Tab Bar Application” e proseguiamo. Diamo un nome al nostro progetto, ad esempio “disclaimer”, scegliamo in che posizione salvarlo e andiamo avanti.

Eccoci con il nostro progetto pronto. Se clicchiamo ora su “Build and Run” otterremo un risultato come quello mostrato in figura qui in basso, ovvero, si aprirà direttamente la nostra app mostrando direttamente la UITabBar con i suoi elementi e la prima View:


T#025 - Avvio programma senza splash screen

Creiamo quindi la nostra Splash Screen personalizzata. Clicchiamo con il pulsante destro del mouse su “Classes” in “Groups & Files”, quindi su “Add” ed infine su “New File…”

Clicchiamo su “Cocoa Touch Class” sotto la sezione iPhone e tra i template di file scegliamo “UIViewController subclass”, accertiamoci che ci sia la spunta su “With XIB for user interface” e clicchiamo su “Next”. Nella nuova finestra diamo un nome, ad esempio mySplash, e mettiamo la spunta su Also create “mySplash.h” prima di confermare.

Apriamo il file “mySplash.h” e modifichiamo il codice come segue:

#import <UIKit/UIKit.h>
 
@interface mySplash : UIViewController {
 
}
 
- (IBAction)dismissSelf:(id)sender;
 
@end

Abbiamo semplicemente aggiunto la dichiarazione di un metodo, di nome dismissSelf, che assoceremo ad un pulsante creato tramite Interface Builder (IBAction indica proprio che si tratta di un’azione per IB), che ci permetterà di avviare l’applicazione e nascondere la splash tramite un semplice tocco sul pulsante.

Vedremo anche come gestire la scomparsa sella Splash Screen tramite un tempo predefinito e da noi scelto, controlleremo quindi la sua durata.

Passiamo al file “mySplash.m” e modifichiamo il codice come mostrato qui in basso:

- (IBAction)dismissSelf:(id)sender
{
        [self dismissModalViewControllerAnimated:YES];
}
 
- (void)dismiss
{
        [self dismissModalViewControllerAnimated:YES];
}
 
- (void)viewDidLoad {
        [super viewDidLoad];
        [self performSelector:@selector(dismiss) withObject:self afterDelay:8];
}

Come vedete abbiamo usato una semplice istruzione che non fa altro che nascondere la Splash Screen. I due metodi sfruttano di fatto la stessa identica istruzione, solo che il primo lo assoceremo al pulsante, il secondo al nostro “timer”. Nel viewDidLoad potete notare come abbiamo settato un tempo di visualizzazione di 8 secondi per la splash, tramite “afterDelay:8″. Sarà questo valore che, una volta modificato, vi permetterà di aumentare o diminuire la durata della vostra Splash Screen.

Possiamo ora aprire il file mySplash.xib, facendo semplicemente doppio click sopra di esso, per iniziare a disegnare la nostra View personalizzata da usare come Splash Screen. Ricordate di inserire un pulsante al suo interno (UIButton). Cliccate quindi su “File’s Owner”, andate nella finestra “My Splash Connections” e collegate il metodo “dismissSelf:” con il tasto appena inserito. Ricordate di scegliere “Touch Up Inside” dal menù contestuale che si aprirà al rilascio del mouse sul pulsante. Terminato il vostro lavoro Salvate e chiudete Interface Builder.

Ancora poche righe di codice e il lavoro sarà terminato. Apriamo ora il file “…AppDelegate.h”, nel nostro caso “disclaimerAppDelegate.h” e importiamo il file di intestazione “mySplash.h”, semplicemente aggiungento la seguente istruzione subito sotto l’importazione dell’UIKit:

#import "mySplash.h"

Salviamo e apriamo il rispettivo file “disclaimerAppDelegate.m”. Modifichiamo quindi il codice come segue:

#import "disclaimerAppDelegate.h"
 
@implementation disclaimerAppDelegate
 
@synthesize window;
@synthesize tabBarController;
 
- (void)applicationDidFinishLaunching:(UIApplication *)application {
        // Add the tab bar controller's current view as a subview of the window
        [window addSubview:tabBarController.view];
 
	mySplash *splashView = [[mySplash alloc] initWithNibName:@"mySplash" bundle:nil];
	splashView.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
	[tabBarController presentModalViewController:splashView animated:NO];
	[splashView release];
}

Come vedete abbiamo aggiunto quattro righe di codice, saranno proprio queste a mostrarci la nostra personalissima Splash Screen prima dell’avvio dell’app vera e propria, in questo caso basata su TabBar.

Possiamo salvare e cliccare su “Build and Run” per testare il nostro lavoro su iPhone Simulator o direttamente sul nostro dispositivo, iPhone o iPod Touch.

Ecco uno screenshot del nostro progetto in esecuzione:


Tutorial 025 - Splash Screen e tutorial all'opera in iPhone Simulator


AvShop Banner