Afficher un splash screen dès le lancement de l'application
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 :
Dans le AppController :
L'attribut view de StartAppController est une image view contenant le splash screen voulu.
Merci d'avance,
oBo.
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 { <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 /> [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 /> [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.
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
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
Merci beaucoup !
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