web-dev-qa-db-fra.com

Lancer le storyboard de l'écran ne pas afficher l'image

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 apparaissent bien, mais l'image n'apparaît pas.

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

Cependant, lorsque je lance l'application sur le simulateur (ainsi que sur le périphérique physique), c'est ce qui apparaît:

 enter image description here

Comme vous pouvez le constater, l'étiquette "Test" s'affiche bien, mais l'image ne s'affiche pas. Je ne sais vraiment pas pourquoi cela se produit et rien de ce que je tente 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é. 

69
shadowarcher

Après avoir redémarré Xcode, nettoyez la construction et plusieurs autres suggestions sur SO concernant ce problème. Ce qui a réellement résolu le problème pour moi, c’est un redémarrage brutal de l’appareil. (J'ai perdu plus d'une heure à ce sujet)

Je suppose que cela prouve que le vieil adage qui dit que vous l’avez éteint puis rallumé est toujours vrai pour les derniers gadgets!

156
Flexicoder

Je m'amusais avec ça pendant des heures aussi. Mais j'ai trouvé la solution maintenant. Vous devez ajouter l'image à votre projet et également aux actifs.xcassets par glisser-déposer.

49
Tristan G

Avoir le même problème, l'ajout de l'image à la section "Construire les phases -> Copier les ressources de l'ensemble" l'a corrigé.

28
Jakab Robert

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 cela a été dit auparavant:

1 - Importer une image souhaitée dans votre projet xCode (glissez-la et déposez-la)

2 - Changer ses contraintes et son alignement

3 - Mettre à jour les cadres en résolvant les problèmes de mise en page automatique

4 - Dans le menu de l'onglet Inspecteur d'attributs (généralement dans le menu du coin droit xCode), dans Image> Image, supprimer l'extension de l'image (.png ou .jpg) - c'est tout

Sur l'écran de conception, il n'apparaît pas, mais lorsque vous exécutez votre application, il s'affiche.

J'espère que ça peut aider!

22
Jhonsore

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

  1. Faire un redémarrage difficile de l'appareil

  2. Supprimer l'application

  3. Installer l'application depuis Xcode

14
Crashalot

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

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

9
shumin

J'ai eu le même problème.

  1. Supprimer l'application de l'appareil
  2. Redémarrer l'appareil
  3. Reconstruire

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

8
Vineesh TP

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

8
Reinier Melian

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

5
Tarek

J'ai rencontré le même problème. 

  1. Ajouter un nouveau jeu d'images à XcodeAssets.
  2. Ajouter des images à l'ensemble d'images.
  3. Ajouter une vue d'image pour lancer l'écran et définir votre jeu d'images en tant qu'image
  4. Sur l'inspecteur d'attributs d'Imageview, décochez la case "efface le contexte graphique".
  5. Nettoyez le dossier de construction et exécutez à nouveau.

 enter image description here

5
A.G

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

4
Entro

Redémarrez votre appareil et effacez les données dérivées x-code

4
Maulik Patel

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 celui de votre storyboard, elles apparaîtront sous 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 maintenant comme un point d'interrogation bleu dans xcode, mais cela fonctionnera dans l'application.

2
Prime624

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 que lorsque vous avez ajouté votre image à votre story-board, le nom de l'image en haut à gauche correspond également au nom du fichier d'image réel. J'essaierais aussi d'examiner les contraintes. J'espère que cela t'aides. Bonne chance avec votre application.

2
user5708587

Eh bien, à partir de maintenant, un appareil Retina est disponible et j'ai ignoré l'image @1x dans 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 ne fournissais que des images @2x et @3x pour cette image de logo. 

Ce problème est résolu en ajoutant la version @1x de cette image.

2
Kampai

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

1
maral

Dans mon cas particulier, l'écran de démarrage a fonctionné pour le simulateur et d'autres périphériques, mais a cessé de fonctionner pour un périphérique 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 à l'adresse suivante: ~/Library/Developer/Xcode/DerivedData/ uniquement en vidant le contenu du dossier, pas en le supprimant. J'ai ensuite redémarré le Mac et l'iPhone, nettoyé et reconstruit le projet, qui s'affiche maintenant. 

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

1
zkon

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 alors réalisé que l'image n'était pas visible uniquement lorsque j'ai directement installé l'application dans l'appareil et que l'application est toujours connectée au xcode. Si je le déconnecte puis ouvre l'application, l'image est visible comme prévu . Il pourrait s'agir d'un bogue xcode.

1
Preeti Rani

Change l'image de fond de l'écran de démarrage et la nouvelle image ne s'affiche pas (réagit au projet natif).

Suivre les réponses des autres.

J'ai fait tout ce qui est en dessous et cela a été corrigé:

  • Construction propre. 
  • Supprimer l'application du simulateur 
  • Quitter le simulateur
  • Redémarrer le XCode
  • Lancer l'application à nouveau
1
resting

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 Assets. Ajoutez-le directement à la hiérarchie de votre projet, comme n'importe quel fichier source.
  • Dans la vue d'image, chargez l'image avec son extension. Exemple: launch_app_image.png

(Il faudra peut-être nettoyer le produit ou les données dérivées pour le mettre à jour, mais je ne devais pas le faire)

1
Kqtr

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 compressées pour réduire un peu la taille, tout a bien fonctionné.

1
Gee.E

Dans mon cas, il s’agissait d’un peu plus que de simplement redémarrer l’appareil. Mon image de lancement a été stockée dans d'autres actifs (autres pods).

A dû déplacer l'image vers les actifs du projet d'application. Et puis redémarré mon appareil. (Vérifiez d'abord le simulateur, cela devrait fonctionner). Ensuite cela a fonctionné.

Les images peuvent être au format png/pdf, simple échelle ou non.

0
Evan

Dans mon cas, il est apparu que certaines vues étaient toujours liées au contrôleur de vue, qui n'était plus qu'un contrôleur de base. Si je clique sur la vue tout en maintenant la touche Contrôle enfoncée, je peux voir les points de vente avec des avertissements. Cependant, les avertissements n'apparaissaient pas dans Xcode, c'est pourquoi j'avais du mal à les trouver.

0
Gujamin

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. J'ai eu ce cas des problèmes d'image. Il semble donc que certains paramètres manquent dans ce cas, alors je viens de créer un nouveau fichier via fichier-> nouveau et de sélectionner directement le "Écran de lancement", puis cela a fonctionné.

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

Peut-être que cela aide quelqu'un.

0
Tim Christmann

J'ai essayé tellement de choses avec cela (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 serait affichée pendant quelques sessions de l'application, puis elle s'arrêterait (je ne sais pas pourquoi, mais WOW, c'était agaçant) .

Après d'innombrables heures, j'ai trouvé que la réponse de A.G. dans ce fil de discussion était la bonne. La seule chose que je faisais mal était de créer un nouveau jeu d'images dans xcassets, mais j'utilisais encore le nom de l'image dans UIImageView à l'intérieur du storyboard au lieu du nom du jeu d'images.

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

Lorsque vous faites tout cela, l'image devrait en fait apparaître correctement à l'intérieur de votre scénarimage. Certaines personnes disent que l'image sera 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 du jeu d'images. D'autres disent que vous devez utiliser une extension telle que .png ou .jpg, mais la clé est de créer le jeu d'images à l'intérieur de xcassets, puis d'utiliser ce jeu d'images à l'intérieur du storyboard. Lorsque cela est fait correctement, il ne devrait pas y avoir de funkiness comme une image ne s'affiche pas ou l'écran de démarrage ne fonctionne que de temps en temps (nécessitant un redémarrage).

0
John Holtkamp

Il s’agit d’un problème de mise en cache dans XCode/iOS, mais il existe un correctif simple: il suffit de renommer le fichier dans Assets.xcassets pour que le cache soit régénéré.

0
thatmarcel

Mon problème.

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

J'espère que ça vous aide!

0
Wajahat Hussain

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

Je viens de faire une copie de plus de l'image et de renommer la copie puis de supprimer l'ancienne image et d'ajouter la nouvelle image (Idem, avec le nom modifié). Je viens de donner cette image et cela a fonctionné pour moi.

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

0
R. Mohan

Je viens de comprendre cela. Mon image de lancement n’apparaissant pas, je reçois 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 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 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/Supérieur à 0 - voir l'image ci-dessous:

 enter image description here

0
Brian

Je suis confronté au même problème lorsque j'utilise launch-storyboard pour afficher un écran de démarrage. Après des recherches, j'ai constaté que l'image que j'ai définie dans launch-storyboard est de taille différente.

La solution que j'ai trouvée est donc de définir la taille du contenu image-view en tant que format d'affichage ou la taille image-view en taille d'image.

Par exemple, si votre image @ 1x a une taille de 200X200, l’affichage de l’image devrait être de 200X200 pour résoudre ce problème.

Parce que si vous définissez une taille d'image plus grande que l'image, l'image sera amidonnée et ceci n'est pas autorisé.

Si vous avez encore des doutes, commentez ici et demandez

0
hardik vyas