Le storyboard de l'écran de lancement n'affiche pas l'image

162

J'essaie d'obtenir une image à afficher comme écran de lancement à partir de mon fichier Launch Screen.storyboard, mais l'image ne s'affiche jamais. J'ai des étiquettes qui s'affichent bien, mais l'image n'apparaît pas.

Voici à quoi ressemble l'écran de lancement dans le fichier Launch Screen.storyboard: entrez la description de l'image ici

Cependant, lorsque j'exécute l'application sur le simulateur (ainsi que sur l'appareil physique), voici ce qui apparaît:

entrez la description de l'image ici

Comme vous pouvez le voir, le libellé "Test" s'affiche correctement, mais l'image ne s'affiche pas. Je ne sais vraiment pas pourquoi cela se produit et rien de ce que j'essaie ne semble fonctionner. Si quelqu'un a des idées sur la façon de résoudre ce problème, il serait grandement apprécié.

Shadowarcher
la source
1
assurez-vous que votre image est au format png approprié . pas jpg si c'est le cas.
Utkarsh Singh
3
Le fait que plusieurs réponses complètement différentes aient beaucoup de votes positifs est très, très triste.
Daniel Springer
1
Est-il possible que si l'image est trop grande et que son temps de chargement est trop long, elle soit supprimée de l'écran de lancement?
Lubbo
@Lubbo Je pense qu'il y a quelque chose dans cette théorie. J'ai une vue de lancement qui a une grande et une petite image, la petite se charge bien et la grande non. La petite image est dans xcassets et la grande que j'ai essayée à la fois dans et hors du fichier des actifs.
Tom Bates

Réponses:

327

Après le redémarrage de Xcode, le nettoyage de la construction et un certain nombre d'autres suggestions sur SO à propos de ce problème. Ce qui a en fait résolu le problème pour moi, c'est un redémarrage dur de l'appareil. (J'ai perdu plus d'une heure là-dessus)

Je suppose que cela montre simplement que le vieil adage: avez-vous éteint et rallumé est toujours vrai pour les derniers gadgets!

Comment redémarrer l'iPhone XS ou l'iPhone XS Max

  1. Appuyez et relâchez rapidement le bouton d'augmentation du volume
  2. Appuyez et relâchez rapidement le bouton de réduction du volume
  3. Appuyez sur le bouton latéral et maintenez-le enfoncé jusqu'à ce que le logo Apple apparaisse
Flexicoder
la source
30
Ce gars a raison. Le simple fait de redémarrer l'appareil a résolu le problème pour moi!
Lance Samaria
4
Il y avait le problème d'une image qui ne se mettait pas à jour après l'avoir écrasée dans les actifs. Merci pour le conseil, quitter complètement le simulateur et le redémarrer a mis à jour l'aperçu. Très étrange que rien d'autre ne semble faire l'affaire.
Kilian du
3
Merci. Cela fonctionne également pour le simulateur. Après avoir redémarré le simulateur, l'image dans le Launch Scree.storyboard apparaît enfin. C'est définitivement un bug d'iOS.
Vince Yuan
4
Même problème ici. Même si l'image a été modifiée sur l'écran de lancement dans le simulateur, l'ancienne image était toujours en cache sur mon téléphone. Essayé de construction propre, changement de nom de fichier, changement d'image, n'a pas fonctionné. J'ai dû éteindre et rallumer mon téléphone. Cela a réglé le problème.
Paul
3
Nous sommes en 2020 et cela m'a encore sauvé la journée! Merci!
Bezaleel le
91

J'étais aussi en train de jouer avec ça pendant des heures. Mais j'ai trouvé la solution maintenant. Vous devez ajouter l'image à votre projet et également aux assets.xcassets par glisser-déposer.

Tristan G
la source
8
C'était ça. L'image devait être à la fois dans le projet et dans les actifs. C'est comme un jeu de whack-a-mole. Quelle astuce résoudra le problème? personne ne sait.
FranticRock
qui savait que vous deviez également ajouter une image dans le projet
Abdul Waheed
2
L'ajout d'une image juste au projet a résolu mon problème :)
Sneha
3
Merci, c'est réglé pour moi. Pour ajouter à cela, j'avais précédemment nommé les images avec la taille (launch280.png, launch560.png, launch840.png) et également ajouté un actif à Assets.xcassets avec le nom d'actif de launch. Mais cela n'a toujours pas fonctionné. J'ai dû renommer les fichiers image en launch.png, [email protected] et [email protected], les ajouter au projet, les ajouter en tant qu'actif appelé launch, puis cela a fonctionné. Merci Apple d'avoir rendu le plus simple des choses inutilement complexes ¬_¬
Mashers
2
Aaaand je suis ici pour la deuxième fois 3 ans plus tard ... Nous sommes en avril 2020, XCode a toujours ce bug ... Nice ...
FranticRock
42

J'ai eu le même problème, l'ajout de l'image aux "Phases de construction -> Copier les ressources du lot" l'a corrigé pour moi.

Jakab Robert
la source
6
C'est ce dont j'avais besoin. L'image doit se trouver dans l'ensemble principal et non dans le fichier de ressources.
Meonardo
C'est ce qui l'a fait pour moi.
Chris
Correction de ça pour moi, merci!
adam eliezerov
28

Suivez les étapes ci-dessous,

  1. Supprimer l'application de l'appareil
  2. Redémarrer l'appareil
  3. Construire à nouveau

Si cela ne fonctionne pas, supprimez les données dérivées. Préférence Xcode-> EmplacementTab-> Données dérivées. Suivez ensuite les étapes ci-dessus.

Vineesh TP
la source
25

Cela m'est arrivé et me rend fou, au-delà de me faire perdre quelques minutes jusqu'à ce que je le découvre.

Donc, comme on l'a déjà dit:

  1. Importez l'image souhaitée dans votre projet Xcode (faites-la simplement glisser et déposez-la)
  2. Changer ses contraintes et son alignement
  3. Mettre à jour les cadres résolvant les problèmes de mise en page automatique
  4. Dans le menu à onglet de l'inspecteur d'attributs (généralement dans le menu du coin droit xCode), sur Vue d'image> Image, supprimez l'extension d'image (.png ou .jpg) - c'est l'astuce

Sur l'écran de conception, il n'apparaîtra pas, mais lorsque vous exécuterez votre application, il sera affiché.

J'espère que cela peut aider!

Jhonsore
la source
1
travaillé pour moi! avant d'essayer votre solution, la seule façon de la montrer était de redémarrer mon téléphone! Merci
Filipe Sá
1
Je vous remercie! Vous ne savez pas comment vous l'avez trouvé, mais ça marche!
Stas Volskiy
Oui en effet!! L'astuce consiste à supprimer l'extension d'image des fichiers image .png! Les fichiers .jpg ne fonctionnaient pas, alors j'ai d'abord dû les convertir en .png! Merci beaucoup Jhnosore!
ActiveA
24

Très frustrant. Solution qui a finalement fonctionné:

  1. Faites un redémarrage dur de l'appareil

  2. Supprimer l'application

  3. Installer l'application depuis Xcode

Crashalot
la source
17

Enfin, redémarrez le téléphone fonctionne pour moi !!

J'ai passé des heures sur cette question. J'avais essayé de changer le nom des images, de supprimer tous les actifs de l'image, de modifier info.plist, de redémarrer Xcode et même de définir tous les attributs des images (ce que vous pouvez dire à quel point j'étais désespéré).

shumin
la source
Cela ne répond pas à la question. Une fois que vous aurez une réputation suffisante, vous pourrez commenter n'importe quel message ; à la place, fournissez des réponses qui ne nécessitent pas de clarification de la part du demandeur . - De l'avis
Adam Richardson
Je suis désolé @AdamRichardson, il fournit une réponse et une réponse correcte aussi et c'était mon cas. J'avais juste besoin de redémarrer le téléphone / simulateur.
Kegham K.
J'ai passé 16 heures à essayer de résoudre ce problème et finalement le redémarrage du téléphone a fait l'affaire.
Krishnan
2
Je parie que quelqu'un chez Apple qui pourrait résoudre ce problème doit penser: "Oh, ils ont juste besoin de redémarrer leur téléphone - ce n'est pas comme si cela affecte les versions de version ou quoi que ce soit. Nous pouvons laisser cette tâche pour plus tard."
dinesharjani
En fin de compte, il a fini par redémarrer le téléphone qui a résolu le problème
Taylor Maxwell
12

Ce problème est lié à Assets.xcassets pour le résoudre, vous devez ajouter l'image en tant que ressource mais pas dans le dossier xcassets et cela devrait fonctionner correctement

Reinier Melian
la source
2
C'est la seule solution qui a fonctionné jusqu'à présent. Le redémarrage de xcode, la suppression des données dérivées, la modification du nom de l'image ne fonctionnaient pas. Je ne recommande de redémarrer l'appareil comme solution à personne
NightFury
ce bogue est aussi ancien que la création d'xcassets. Je l'ai rempli mentalement dans mon dossier "les choses que Apple ne résoudra jamais".
Canard
8

Dans mon cas, la réinitialisation du contenu et des paramètres du simulateur a résolu le problème.

Tarek
la source
7

J'ai fait face au même problème.

  1. Ajoutez un nouvel ensemble d'images à XcodeAssets.
  2. Ajoutez des images à l'ensemble d'images.
  3. Ajoutez une vue d'image à l'écran de lancement et définissez votre ensemble d'images comme image
  4. Dans l'inspecteur d'attributs d'Imageview, décochez «efface le contexte graphique»
  5. Nettoyez le dossier de construction et exécutez à nouveau.

entrez la description de l'image ici

AG
la source
5

Il semble qu'il y ait un problème avec la mise en cache des ressources dans xCode. Eu le même problème, redémarré xCode et tout fonctionne bien après cela.

Entro
la source
5

Redémarrez votre appareil et effacez les données dérivées du code X

Maulik Patel
la source
3

Après avoir tout essayé sur plusieurs threads StackOverflow, voici ce qui a fonctionné pour moi:

  • Utilisez un .png
  • Ne l'incluez pas dans votre catalogue d'actifs. Ajoutez-le directement à la hiérarchie de votre projet, comme vous le feriez pour n'importe quel fichier source.
  • Dans la vue image, chargez l'image avec son extension. Exemple: launch_app_image.png

(Il se peut que vous deviez nettoyer le produit ou les données dérivées pour mettre à jour, mais je n'ai pas eu à le faire)

Kqtr
la source
2020 et cela est toujours pertinent, parfois changer l'image en un nouveau PNG dans le catalogue quand cela fonctionne l'arrêtera. Je ne sais pas s'il s'agit d'un niveau de compression, mais les fichiers image simples fonctionnent.
Mitchell Currie le
3

J'ai eu ce problème après avoir ajouté une image au projet et abattu l'appareil, le problème a été résolu

maral
la source
3

Modifiait l'image d'arrière-plan de l'écran de démarrage et la nouvelle image ne s'affichait pas (réaction du projet natif).

Suivre les réponses des autres.

J'ai fait tout ce qui suit et cela a été corrigé:

  • Construction propre.
  • Supprimer l'application du simulateur
  • Quitter le simulateur
  • Redémarrez XCode
  • Exécutez à nouveau l'application
repos
la source
3

Eh bien, à partir de maintenant, il existe un périphérique Retina et j'ai ignoré l' @1ximage Assets.xcassets.

Dans mon cas, j'ai le logo de l'application sur l'écran de démarrage qui n'est pas visible lorsque j'exécute l'application.

Après avoir perdu tellement de temps, j'ai compris que je n'avais fourni @2xque des @3ximages pour cette image de logo.

Ce problème est résolu en ajoutant une @1xversion de cette image.

Kampai
la source
1
tu as sauvé ma journée!
kambala
2

Vous devez vous assurer que le nom de fichier de votre image a un format comme .png ou .jpg à la fin sinon cela ne fonctionnera pas. De plus, avant d'ajouter votre image, vous devez vous assurer que le fichier image se trouve dans votre dossier «Assets.xcassets» de votre projet. Cela peut être fait avec un simple glisser-déposer. Assurez-vous également, lorsque vous avez ajouté votre image à votre storyboard, que le nom de l'image en haut à gauche correspond également au nom réel du fichier image. J'essaierais aussi d'examiner les contraintes. J'espère que cela t'aides. Bonne chance avec votre application.


la source
2

J'ai passé des heures sur ce problème avant de finalement réaliser mon erreur. Lorsque vous ajoutez une image à un UIImageView, il utilisera uniquement le nom de l'image. Si vos images se trouvent dans un dossier différent de votre storyboard, elles s'afficheront dans xcode mais pas lors de l'exécution de l'application. Vous devez ajouter le préfixe de chemin de fichier approprié, par exemple, images / image.png. Il apparaîtra désormais comme un point d'interrogation bleu dans xcode, mais cela fonctionnera dans l'application.

Prime624
la source
2

Juste pour ajouter mon 0,02 $ à cette question; J'ai résolu ce problème en utilisant des images PNG au lieu d'images JPG / JPEG.

Après avoir converti les images au format PNG et les avoir écrasées pour réduire un peu la taille, tout a bien fonctionné.

Gee.E
la source
2

Après avoir investi beaucoup de temps, j'ai eu la solution: -

Step 1:- Quit Xcode
Step 2:- Delete the app from device/simulator
Step 3:- Restart your device (if you are using simulator then you have to quit simulator)
Step 4:- Clear all derived data 
Step 5:- Clear Bin
Step 6:- Open Xcode and relaunch the app, it will work 
Vipul Kumar
la source
ça a marché pour moi merci
Dilip Tiwari le
@DilipTiwari votre bienvenue :)
Vipul Kumar
1

J'ai fait face au même problème. J'ai essayé différentes solutions pour cela, mais rien ne s'est avéré utile. J'ai ensuite réalisé que l'image n'était pas visible uniquement lorsque j'ai installé directement l'application dans l'appareil et que l'application est toujours connectée au xcode. Si je le déconnecte, puis que j'ouvre l'application, l'image était visible comme prévu. Cela pourrait être un bogue xcode.

Preeti Rani
la source
1

J'ai essayé de nettoyer le projet, supprimer le png, supprimer les contraintes ne fonctionnait pas pour moi.

Je viens de faire une autre copie de l'image et renommer la copie, puis j'ai supprimé l'ancienne image et ajouté la nouvelle image (même chose, avec le nom changé), je viens de donner cette image et cela a fonctionné pour moi.

Aussi, je n'utilise pas les Assets.xcassets, en utilisant l'image dans un dossier.

R. Mohan
la source
1

J'ai essayé tellement de choses avec ça (ce fil à lui seul semble avoir un million d'idées et la moitié d'entre elles sont en conflit). Le problème pour moi était que lorsque je faisais des choses comme redémarrer l'appareil et Xcode, l'image s'afficherait pendant quelques sessions de l'application, puis elle s'arrêtait (je ne sais pas pourquoi, mais WOW c'était ennuyeux) .

Après d'innombrables heures, j'ai trouvé que la réponse d'AG dans ce fil est la bonne. La seule chose que je faisais mal, c'est que je créais un nouvel ensemble d'images dans xcassets, mais j'utilisais toujours le nom de l'image dans UIImageView à l'intérieur du storyboard au lieu d'utiliser le nom de l'ensemble d'images.

Pour clarifier, ce que vous feriez est de créer un nouvel ensemble d'images et de le nommer quelque chose comme "Launch-Defaults", puis d'y ajouter vos images. Ensuite, dans UIImageView à l'intérieur du storyboard, vous utilisez l'image "Launch-Default" (sans inclure une extension car il n'y en a pas puisqu'il s'agit d'un jeu d'images).

Lorsque vous faites tout cela, l'image devrait en fait apparaître correctement à l'intérieur de votre storyboard. Certaines personnes disent que l'image s'affichera vide si vous n'utilisez pas l'extension (.jpg ou .png), mais je suppose que c'est parce qu'elles n'utilisent pas le nom de l'ensemble d'images. D'autres disent que vous devez utiliser une extension comme .png ou .jpg, mais la clé est de créer l'ensemble d'images à l'intérieur de xcassets, puis d'utiliser cette image définie à l'intérieur du storyboard. Lorsque cela est fait correctement, il ne devrait pas y avoir de funkiness comme une image qui ne s'affiche pas ou que l'écran de lancement ne fonctionne que de temps en temps (nécessitant un redémarrage).

John Holtkamp
la source
1

Dans mon cas particulier, l'écran de démarrage fonctionnait pour le simulateur et d'autres appareils, mais a cessé de fonctionner pour un appareil spécifique. Cela m'a amené à croire qu'il s'agissait de données de mise en cache conservées par xcode (v10 et iPhone 7 v12.1).

J'ai supprimé les données dérivées à: ~/Library/Developer/Xcode/DerivedData/vider uniquement le contenu du dossier, pas supprimer le dossier. J'ai ensuite redémarré le mac et l'iPhone et nettoyé et reconstruit le projet, et maintenant il apparaît.

Je ne sais pas si tout cela était nécessaire, mais je ne voulais plus perdre de temps à le réduire, donc l'approche du marteau ci-dessus a fonctionné pour moi. Mais bien sûr, cela dépend toujours de votre situation spécifique - la mienne était spécifique à l'appareil; pour d'autres, il peut s'agir de l'image réelle ou de la disposition de l'écran de lancement, etc.

zkon
la source
1

Mon problème.

Raison: j'ai renommé les images après les avoir glissées dans Xcode. Solution: ne renommez pas les images après avoir glissé dans Xcode. Cela crée des problèmes pour comprendre Xcode. Renommez les images avant de les faire glisser / ajouter dans Xcode.

J'espère que cela vous aidera!

Wajahat Hussain
la source
0

Je viens de comprendre cela. Mon image de lancement n'apparaissait pas, j'obtiens un écran blanc lors du lancement sur un appareil (iPhone 6, 7+) ou testFlight. Correction: renommé "Landing_screen.png" en "Landing_screen" supprimant la partie .png. L'icône d'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 vue d'image simple et étiré l'image pour l'adapter au contrôleur de vue. J'ai défini les contraintes de mise en page automatique Haut / Bas / Début / Fin pour superview sur 0 - voir l'image ci-dessous:

entrez la description de l'image ici

Brian
la source
0

Dans mon cas, il s'est avéré que j'avais encore des vues liées au contrôleur de vue qui n'était maintenant qu'un contrôleur de vue de base. Si je contrôle-cliquez sur la vue, je peux voir les prises avec des avertissements, cependant, les avertissements ne sont pas apparus dans Xcode, c'est pourquoi j'avais du mal à les trouver.

Gujamin
la source
0

Cela se trouve être un problème de mise en cache dans XCode / iOS, mais il existe une solution simple à cela: renommez simplement le fichier dans Assets.xcassets, pour que le cache soit régénéré.

ce marcel
la source
0

Ma première erreur a été de créer un .storyboard normal, de le renommer et de le définir comme écran de lancement dans les paramètres du projet. Dans ce cas, j'ai eu des problèmes d'image. Il semble que certains paramètres manquent dans ce cas, alors je viens de créer un nouveau fichier via fichier-> nouveau et j'ai choisi directement «Écran de lancement», puis cela a fonctionné.

J'avais également à l'esprit que, pour une raison quelconque, les contraintes de mise en page ne sont pas prises en charge dans l'écran de lancement. C'était peut-être comme ça au début, pas sûr, mais maintenant les contraintes devraient fonctionner.

Peut-être que cela aide n'importe qui.

Tim Christmann
la source
0

J'ai rencontré le même problème lors de l'utilisation du storyboard de lancement pour afficher l'écran de démarrage et après des recherches, j'ai trouvé que l'image que j'ai définie dans le storyboard de lancement est de taille différente et j'ai défini une vue d'image plus grande que la taille réelle de l'image.

Donc, la solution que j'ai trouvée est soit de définir la taille du contenu de la vue image comme ajustement de l'aspect, soit de définir la taille de la vue image comme la taille de l'image.

Par exemple, si la taille de votre image @ 1x est de 200X200, la vue de l'image doit être de 200X200 que vous résoudrez ce problème.

Comme si vous définissez une taille de vue d'image plus grande que l'image, l'image sera amidonnée et cela n'est pas autorisé.

Si vous avez encore des doutes, veuillez commenter ici et demander

Hardik Vyas
la source