Je souhaite obtenir un écran de lancement simple à afficher dans mon application, construit à l'aide de Xcode 6.0.1.
J'ai ajouté un écran de lancement de deux manières: en tant que XIB (avec le nom par défaut, LaunchScreen.xib) et en tant qu'image de lancement définie dans xcassets.
Je me suis assuré que mon "fichier d'écran de lancement" est défini sur LaunchScreen.xib.
J'ai simulé tous les appareils disponibles (par exemple, "iPhone5 iOS8"/"iPhone5s iOS8"/"iPhone6 iOS8". Notez que seul iOS 8 est disponible dans le simulateur).
Donc, cela a été assez pénible pour quelque chose qui devrait être trivial. Voici ce que j'ai fait:
Utilisez xcassets
J'ai décidé d'utiliser .xcassets par rapport au .xib pour le lancement. J'ai supprimé le .xib. Si vous avez déjà des images.xCassets dans votre projet, c'est très bien, sinon vous pouvez en ajouter un à partir de Fichier> Nouveau> fichier:
Créer un ensemble d'images de lancement
Maintenant, créez au minimum un jeu d'images de lancement et un jeu d'icônes dans votre fichier .xcassets en cliquant avec le bouton droit de la souris dans la zone du navigateur.
Mettez à jour les icônes de l'application et lancez les paramètres des images
Ensuite, je me suis assuré que "les applications icône et jeux d'images" dans ma cible sont comme ci-dessous.
Très important: Assurez-vous que le paramètre "Fichier de l'écran de démarrage" est vide.
Ajoutez les images
Dernier point mais non le moindre, la terminologie utilisée par Apple pour la sélection de périphérique est source de confusion. Au départ, je pensais que puisque je ne déployais que pour iOS8 (iPhone Portrait), je pouvais le faire et mettre tout simplement dans l'image de lancement de l'iPhone 6 et de l'iPhone 6+:
Je me suis vite rendu compte que ce n’était pas ainsi que cela fonctionnait et je recevais un avertissement: "Une image de lancement pour iPhone Retina (4 pouces) pour iOS 7.0 et versions ultérieures est requise".
J'ai donc dû sélectionner l'iPhone sous iOS 7.0 et versions ultérieures et ajouter une image pour l'iPhone 5s.
Donc, pour savoir quelles cases vérifier à droite, ne posez pas la question: quelle est mon orientation minimale pour iOS et les appareils et appareils, mais plutôt:
Quels appareils peuvent prendre en charge mon minimum iOS? Maintenant Quel est le minimum iOS pris en charge sur ces appareils? Et assurez-vous de cocher toutes ces cases. Donc, pour moi, je cible les iPhone 5, 6 et 6 Plus à 8.0, mais étant donné que l'iPhone 5 peut exister avec la version 7.0, je dois également cocher la case 7.0 pour afficher l'espace réservé à l'image. En d'autres termes, la case à cocher (iOS) à droite indique la version minimale iOS disponible pour ce périphérique et vous devez cliquer dessus pour afficher l'espace réservé pour l'image et placer une image, que vous déployiez cette version iOS ou non. .
J'espère que ça aide quelqu'un.
Le LaunchScreen.xib
et la valeur d'info Launch screen interface file base name
sont, d'après mon expérience, les deux espaces réservés créés lors de la création du projet. Si vous souhaitez utiliser le Images.xcassets
exclusivement pour vos écrans de lancement, supprimez les éléments LaunchScreen.xib
et info.plist
.
Si vous fournissez le paramètre info.plist
, votre application utilisera le xib
et non votre Images.xcassets
.
Xcode 8:
Les images utilisées dans LaunchScreen.xib ne devrait pas l'être sur un .xcassets, essayez de les déposer dans le lot.
On dirait que, au moment où le fichier .xib est chargé, les images des fichiers .xcassets ne sont pas encore disponibles.
EDIT: pour une raison quelconque, après l’ajout de certaines localisations, l’écran de démarrage a cessé de fonctionner; il fonctionne désormais avec une image des ressources, extrêmement étrange.
Ma solution était de créer toutes les images de lancement.
Ensuite, je règle la source d'images de lancement sur la ressource LaunchImage et laisse le fichier de l'écran de lancement vide.
Enfin, si le projet ne possède pas de fichier Launch Screen.xib, ajoutez ce fichier et laissez-le tel quel.
Pour moi, cela a fonctionné lorsque j'ai désinstallé l'application, puis redémarré le simulateur. Une fois installé à nouveau, l'image de lancement est apparue comme prévu. Cela a également fonctionné sur un appareil réel.
Pour les personnes qui utilisent le Asset Catalog's Launch Image
, comme je l’ai appris de la manière la plus difficile, j’ai eu ce scénario dans lequel j’ai reçu un fichier jpg
puis je l’ai demandé de le convertir en PNG
.
Je leur ai fait suffisamment confiance pour parcourir d’abord sur Internet les raisons pour lesquelles l’image de lancement n’apparaissait pas et j’ai fait toutes les solutions en vain, puis j’ai essayé de remettre la vieille image de lancement et je fonctionnais bien. C’est là que j’ai pensé have n’est pas un fichier PNG
correct.
TL; DR: Assurez-vous que vous utilisez bien un fichier PNG approprié, pas un fichier avec une extension renommée.
Supprimer le nom de base du fichier d'interface de l'écran de démarrage du fichier Info.plist ET supprimer "Lancer Screen.xib" ont fonctionné pour moi.
Simplement supprimer et réinstaller l'application a fonctionné pour moi:
Le problème avec la réponse acceptée est que si vous ne définissez pas le fichier d'écran de lancement, votre application passera en mode de redimensionnement sur des appareils tels que l'iPhone 6 & 6+ => rendu flou.
Voici ce que j'ai fait pour avoir une solution complète et efficace (je cible iOS 7.1 et Xcode 8) sur chaque appareil (vraiment, je commençais à être folle de ce problème de montée en gamme)
1. Préparez vos .xcassets
Pour simplifier, j'utilise un fichier .PDF vectoriel. C'est très pratique et évitez de créer plusieurs images pour chaque résolution (1x, 2x, 3x ...). Je suppose aussi que vous avez déjà créé vos xcassets.
2. Créez votre fichier d'écran de lancement
3. Ajoutez votre image à votre fichier d'écran de lancement
4. Ajoutez votre fichier d'écran de lancement à votre cible
Enfin, dans les propriétés générales de votre cible, reportez-vous au fichier d’écran de lancement.
Démarrez votre application et votre écran de démarrage devrait être affiché. Essayez également sur iPhone6 et iPhone6 +, et votre application devrait être correctement affichée sans aucune conversion ascendante (le fichier Écran de lancement a pour but de faire cela).
Après plusieurs heures de frustration à ce sujet, j'ai décidé d'utiliser cette méthode. Cela fonctionne pour iPhone et iPad (sur Xcode 6.1)
- Fichier >> Nouveau fichier >> Interface utilisateur >> Ecran de lancement
- Créez une nouvelle clé/valeur: "Nom de base du fichier d'interface de l'écran de démarrage"/"Votre nom de l'écran de lancement" dans YourApp-Info.plist
1 image vaut plus que mille mots. Veuillez regarder ci-dessous:
Il existe un bogue dans lequel les images de lancement Xcode 6 stockées dans des fichiers d'actifs font que les applications iPhone paysage uniquement sur iOS7/iOS8 affichent une image de lancement noire. iPad fonctionne bien.
http://www.raywenderlich.com/forums/viewtopic.php?f=2&t=10868
Solution: utilisez le nouveau fichier Launchscreen.xib pour ios8 +. (c'est beaucoup mieux)
Pour que les appareils ios7 fonctionnent, vous devez simplement désactiver la source des images de lancement et utiliser les noms de fichier des images de lancement de l'ancienne école dans la fenêtre de présentation.
iphone5 - [email protected]
iphone4s - [email protected]
ipad2 - Default-Landscape~ipad.png
ipad retina - Default-Landscape@2x~ipad.png
J'ai tout essayé mais la solution était extrêmement simple. Utilisez simplement un fichier .jpg au lieu de .png sur votre LaunchScreen.storyboard. Il semble qu'iOS ne rende pas le fichier .png ou la taille d'image relativement grande à l'écran de lancement.
Faites ce que Spectravideo328 a répondu et:
Essayez de décocher la case iOS 7 et versions ultérieures et de cocher la case iOS 6 et les versions antérieures du catalogue d’actifs. Il semble y avoir un bogue avec l’image de lancement iOS 7. (Ces deux images ont les mêmes images de lancement, à l'exception de celle au format 320x480)
J'espère que ça aide, ça m'a aidé!
J'ai configuré "LaunchImage" dans mon catalogue d'actifs et j'ai tout simplement effacé le champ "Écran de lancement" et le tour est joué! J'ai eu les images de lancement apparaissent ...
Ma suggestion est de sélectionner Lancer la source d’image en tant qu’Image.Assets. Créez des ressources d’image splash dans le dossier Image.assests.
J'ai eu le même problème après avoir commencé à utiliser Xcode 6.1 et modifié mes images de lanceur. J'ai eu toutes les images dans un catalogue d'actifs. Je n'aurais qu'un écran noir au lieu de l'image statique attendue. Après avoir essayé tant de choses, je me suis rendu compte que le problème était que le catalogue "Actif cible" du projet était coché dans sa vue FileInspector. Cochez cette case pour activer la magie et l'image a commencé à apparaître au lancement de l'application.
Une façon consiste à ajouter également "Écran de lancement" (LaunchScreen.xib
), collez l'image dans UIImageView
, puis définissez-la sur " Centre horizontal dans le conteneur " et " Centre vertical dans le conteneur " dans "Aligner" si vous utilisez la disposition automatique.
Écran: http://i.stack.imgur.com/CfnHT.png
N'oubliez pas de mettre LaunchScreen.xib
dans "Lancer le fichier d'écran".
J'ai rencontré ce bug également avec mon application paysage uniquement. Suivre la solution de carlodurso fonctionne:
Pour une raison quelconque, j'ai dû modifier l'emplacement du catalogue d'actifs en "relatif au projet" pour que cela fonctionne.
J'avais également supprimé l'application de mon téléphone et réinstallée, mais c'était probablement le "relatif au projet" qui l'avait fait.
Il existe un fichier 'LaunchScreen.xib' ajouté automatiquement à votre projet. Cette suppression entraînera le passage de xCode à l'utilisation de vos images par défaut dans Images.xcassets.
édité pour ajouter aller à l'icône d'application et au lancement des images
J'ai eu un bug très étrange. Apparemment, ma source d’image de lancement n’était définie que pour la configuration de débogage et non pour la publication. Cela a entraîné l'affichage de mon écran de lancement lors de l'exécution de la configuration de débogage, mais lorsque j'ai changé pour la publication, je n'ai eu qu'un écran noir.
J'ai résolu ce problème lorsque j'ai modifié ma configuration de génération pour libérer le bouton Lancer l'image source et que je devais à nouveau utiliser Utiliser le catalogue d'actifs.
Pour ceux qui sont curieux, voici à quoi ressemblait mon projet.pbxproj.
...
...
...
XXXXXXXXXXXXXXXXXXXXXXXX /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; <---THIS LINE WAS MISSING
...
...
...
Je viens de comprendre cela. Mon image de lancement n’apparaissant pas, j’obtiens un écran blanc lors du lancement sur un appareil (iPhone 6, 7+) ou TestFlight. Correction: renommé "Landing_screen.png" en juste "Landing_screen" supprimant la partie .png. L'icône de l'image dans Xcode est devenue une icône blanche et dans le storyboard de l'écran de lancement, l'image apparaît maintenant comme un point d'interrogation. L'image de lancement apparaît maintenant et non l'écran blanc. Ma configuration: J'utilise Swift 3.1 avec Xcode 8.3.1. Dans LaunchScreen.storyboard, j'ai ajouté une simple vue d'image et étiré l'image pour l'adapter au contrôleur de vue. Je règle les contraintes de mise en page automatique Haut/Bas/Début/Fin de la zone supérieure à 0.
J'ai essayé d'ouvrir un nouveau projet et de suivre les mêmes étapes que vous avez définies pour définir un écran de lancement.
Par défaut, le fichier .xib était défini sur "Lancer le fichier d'écran" et l'écran blanc avec une étiquette était affiché pendant une demi-seconde dans le simulateur.
J'ai ensuite un "Lancer Images Source" et réglez-le sur Images.xcassets qui ont généré avec les images d'arrière-plan que j'ai ajouté au projet. (tout va bien jusqu'à présent)
Relancez le simulateur et les images de lancement ne s'affichent pas ...
Après avoir supprimé le "Fichier d'écran de lancement" spécifié et un nettoyage: Produit -> Nettoyer, dans le menu supérieur, les images de lancement apparaissent enfin.
Peut-être que ça va aider?
Ceci a fonctionné pour moi. Cliquez sur LaunchScreen.storyboard, puis dans le panneau de droite, cochez la case "Is Initial View Controller".
LaunchScreen.storyboard -> Is Initial View Controller
* (Xcode 7.2/Cible de déploiement 7.0/Orientation de paysage uniquement) *
Je sais que c’est une vieille question, mais avec Xcode 7.2, je reçois toujours le message et j’ai résolu ce problème:
1) Sélectionnez PORTRAIT et les deux paysages. Ajouter "Lancer la source d'images" et "Lancer le fichier d'écran"
2) Dans votre image de lancement, sélectionnez l'iPhone "8.0 et versions ultérieures" et "7.0 et versions ultérieures".
3) Ajoutez ce code dans votre appDelegate:
#if __IPHONE_OS_VERSION_MAX_ALLOWED < 90000
- (NSUInteger)supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskLandscape;
}
#else
- (UIInterfaceOrientationMask)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window
{
return (UIInterfaceOrientationMaskLandscape);
}
#endif
4) Ajoutez ceci sur votre ViewController
#if __IPHONE_OS_VERSION_MAX_ALLOWED < 90000
- (NSUInteger)supportedInterfaceOrientations
#else
- (UIInterfaceOrientationMask)supportedInterfaceOrientations
#endif
{
return UIInterfaceOrientationMaskLandscape;
}
J'espère aider à quelqu'un d'autre.
Si vous avez modifié votre image de lancement à partir d'une image précédente, observez les éléments suivants:
C'est probablement à cause de la mise en cache de l'image de lancement faite par iOS. Le redémarrage de l'appareil devrait résoudre le problème.