Afficher un splash screen dès le lancement de l'application

oBooBo Membre
02:21 modifié dans API UIKit #1
Bonjour,

Voici mon problème : mon programme se lance et après un écran noir de quelques millisecondes, mon splash screen s'affiche. J'ai vu que plusieurs applications (voire même toutes) affichent leur splash screen dès leur lancement avec un effet d'agrandissement.

Ma question : où dans IB ou dans le code faut-il positionner l'image view du splashscreen pour obtenir cet effet ?

Voici le code de mon application qui est utilisé au début :

Dans le delegate :
- (void)applicationDidFinishLaunching:(UIApplication *)application {&nbsp; &nbsp; <br />	<br />	//-----------------------------------------<br />	//--- Creating application controller -----<br />	//-----------------------------------------<br />	<br />	appController = [[AppController alloc] init];<br />		<br />	//------------------------------------------------------------<br />	//--- Display first screen of application = SplashScreen -----<br />	//------------------------------------------------------------<br />	<br />	[window addSubview:[appController view]];<br />&nbsp; &nbsp; [window makeKeyAndVisible];<br />}

Dans le AppController :
-(id)init {<br />	[super init];<br />	//Initialize StartAppController<br />	startAppController = [[StartAppViewController alloc] initWithNibName:K_NIB_START bundle:[NSBundle mainBundle]];<br />	return self;<br />}<br /><br />// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.<br />- (void)viewDidLoad {<br />	<br />&nbsp; &nbsp; [super viewDidLoad];<br />	startAppController.appController = self;<br />	[self.view addSubview:startAppController.view];<br />}

L'attribut view de StartAppController est une image view contenant le splash screen voulu.

Merci d'avance,
oBo.

Réponses

  • yodarkyodark Membre
    02:21 modifié #2
    L'image est en fait un PNG qui s'ouvre avant même le chargement de l'application.

    Pour cela il faut mettre un fichier Default.png à  la racine de l'application. C'est cette image qui sera ouverte avant même le lancement de l'application. Tu peux mettre soit un splash screen soit une capture d'écran de la page de démarrage vide de ton application que le fait et recommande Apple
  • oBooBo Membre
    02:21 modifié #3
    Parfait c'est exactement ça.
    Merci beaucoup !
  • AliGatorAliGator Membre, Modérateur
    02:21 modifié #4
    Il y avait même une astuce que j'avais vu traà®ner je ne sais plus où pour pouvoir mettre à  jour ce splashscreen.
    En effet, si vous voulez utiliser un splashscreen qui par exemple représente plutôt le dernier état de votre application (capture de l'écran affiché au dernier lancement juste avant de quitter), ça peut être sympa.
    Le problème c'est que Default.png doit se trouver dans le bundle de l'application, qui n'est pas modifiable, par définition.

    L'astuce consistait à  créer un lien symbolique ([tt]ln -s[/tt]) nommé Default.png justement, et allant pointer vers un fichier "Default.png" se trouvant, lui, dans le répertoire des Documents de l'application (répertoire qui est modifiable par notre application). Et du coup il suffit à  chaque fois que l'on veut changer de splashscreen de sauver la nouvelle image dans le répertoire Documents/Default.png.

    Bon j'ai jamais testé. Je ne sais pas si ça marche, si c'est approuvé par Apple, et comment ça se passe au premier lancement (quand donc le lien symbolique pointe sur ~/Documents/Default.png qui n'existe pas encore) et tout, mais bon ;)
Connectez-vous ou Inscrivez-vous pour répondre.