web-dev-qa-db-fra.com

Image non affichée dans UIImageView dans Interface Builder/iPhone

J'ai une UIView avec une UIImageView déplacée sur la vue. Tout à coup, pour tous mes xibs, l'image ne s'affiche plus. Il y a un X bleu. Cependant, quand il se construit, l'image est là.

À un moment donné, j'ai supprimé et régénéré toutes mes images et en ai transféré certaines dans un sous-dossier de Xcode. Normalement, lorsque vous sélectionnez une image pour une UIImageView, IB vous permet de sélectionner une image du projet. Mais je ne vois plus aucune des images que j'avais placées dans le dossier dans la liste déroulante. 

Tout ce que je vois dans la liste déroulante de l'inspecteur est celle que je veux, mais c'est aussi celle qui ne s'affiche pas. Et comme je l'ai dit, si je le construis sur l'appareil ou le simulateur, tout fonctionne.

Il y a une cache ou quelque chose de foutu quelque part. Tout est construit sans erreur. J'ai nettoyé les caches et reconstruit. Tout fonctionne. Aucune erreur ou avertissements. Mais ... je ne vois aucune autre image et IB pense toujours qu'il manque l'image clairement sélectionnée dans la liste déroulante.

Alors, comment puis-je remettre Xcode et IB sur la bonne voie et voir quels actifs il devrait voir correctement dans les XIB?

23
dbonneville

Essayez de nettoyer et de reconstruire le projet.

Si cela ne fonctionne toujours pas, supprimez toutes les images de Xcode (sélectionnez Supprimer uniquement la référence), puis rajoutez-les à nouveau en les faisant glisser dans Xcode. Puis reconstruisez-le et cela devrait fonctionner.

18
mihir mehta

Ma recette: CLEAN + Build + QUIT XCODE, puis RÉOUVREZ-LE!

Voilá !! C'est là!

14
user1949873

Assurez-vous que vous avez ajouté votre image à la cible lorsque vous la faites glisser dans le projet. Comme le système de dossiers, groupes et projets de Xcode est défectueux, cliquez sur l'image et vérifiez qu'elle a bien été ajoutée à la construction cible dans l'inspecteur, comme indiqué (un problème graphique mérite une réponse graphique!):

Ajouter l'image au projet ...

 enter image description here

Ajouter aux cibles ... (ou si nous pensons)

 enter image description here

L'image d'arrière-plan s'affiche bien dans Interface Builder ... 

 enter image description here

Mais lorsque nous courons, nous n'avons rien d'autre que la couleur de fond que nous avons définie ... aucune image ...

 enter image description here

En cliquant sur UIImageView dans Interface Builder et en utilisant l'inspecteur, nous faisons défiler l'écran vers le bas et constatons qu'il n'a jamais été ajouté à la cible, comme Xcode l'a clairement montré à l'étape 2 ...

 enter image description here

Alors on l'ajoute à la cible ...

 enter image description here

Et nous construisons et courons et le tour est joué! Notre image montre dans le UIImageView exactement où il est supposé montrer. 

 enter image description here

Cela m'a rendu fou la majeure partie de la journée jusqu'à ce que j'essaie d'ajouter du code pour qu'il soit possible de voir s'il s'agissait d'une image floconneuse. Je l'ai ajouté sans problème en créant l'implémentation viewDidLoad ci-dessous. 

Notez que vous n'en avez pas besoin si Xcode/Interface Builder fonctionne comme il se doit. Soit l'utilisateur IB, soit utilisez ce code, pas les deux:

- (void)viewDidLoad {
UIColor *   theColor;
UIImage *   theImage;

[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
theImage = [UIImage imageNamed:@"/<redacted>/background sea green gradent.png"];
theColor = [UIColor colorWithPatternImage: theImage ];
[self.view setBackgroundColor: theColor ]; }

Remarque: cela peut être le même problème si votre bouton ne montre pas d'image personnalisée ... 

7
William Cerniuk

Je viens de rencontrer ce problème. Exporté les images identiques dans Adobe Illustrator. L'un aussi transparent, l'autre blanc. Le transparent apparut avec un gros point d'interrogation bleu. Le faire fonctionner a bien fonctionné cependant. Quelque chose à voir avec IB et PNG transparents

3
Cyberpass

juste pour le compte rendu (parce que rien ne fonctionnait pour moi):

Nous n'avions que des graphismes rétiniens dans nos projets. Après la mise à jour vers XCode 5, toutes les images comportaient un point d'interrogation blanc (uniquement dans le Interface Builder, pas dans Simulator). Nous avons basculé la source de l'image sur non-retina, ce qui a résolu le cas!

enter image description here

Utiliser btn-category-6.jpg a résolu le problème!

2
longilong

Pour moi, c'était parce que les images avaient un ".png" dans l'inspecteur d'attributs. Le supprimer a résolu le problème

2
kevnm67

Dans mon cas, lorsque j'ai créé un nouveau projet dans Xcode 6, je ne peux pas afficher les images dans le simulateur ni dans l'appareil. J'ai importé toutes les images dans les ressources d'image pour créer un dossier dans celui-ci. Maintenant, j'ai importé toutes les images, elles fonctionnent toutes correctement. Toutes les images sont maintenant montrer maintenant. 

Suivez ces étapes:

ÉTAPE 1:

Step 1:

ÉTAPE 2:

Step 2

ÉTAPE 3:

Step 3

puis importez les images dont vous avez besoin. Lien de référence: Lien StackOverflow

1
Manab Kumar Mal

Juste un FYI: J'ai eu un problème similaire. À un moment donné, les images étaient corrompues et représentaient toutes des PNG transparents!

J'ai remplacé les fichiers et maintenant ils sont à nouveau affichés. La corruption de l'image peut s'être produite lorsque j'ai copié les fichiers via l'Explorateur Windows dans la boîte virtuelle d'Oracle sous Windows XP.

1
whaleshark

Assurez-vous de disposer d'un actif correspondant à l'échelle de l'image correspondant à la taille de l'écran que vous visualisez dans votre fichier Interface Builder dans Xcode. Il existe des zones @ 1x, @ 2x et @ 3x pour les ressources image si vous utilisez le catalogue de ressources dans Xcode, ou si vous ne l'utilisez pas, vous devriez avoir différents ressources différenciées par leur nom de fichier (par exemple, " image.png, [email protected], [email protected]). 

Vous ne disposez peut-être pas de plusieurs tailles d’actifs et vous n’avez fourni qu’un actif, par exemple 1x ou 3x. Il est possible que vous visualisiez l’écran dans Interface Builder pour un type de périphérique utilisant une taille d’actif différente et que l’image de la UIImageView ne sera pas rendue dans Xcode. Par exemple, je visionnais l'interface d'un iPhone 7, qui utilise deux fois, mais l'actif avait seulement une version trois fois plus grande. Lorsque j'ai ajouté une version 2x, elle est immédiatement apparue dans Interface Builder dans Xcode.

Notez que même s'il ne rend pas le rendu dans Xcode, il peut toujours être rendu correctement au moment de l'exécution. Néanmoins, il est judicieux de fournir des ressources à des résolutions appropriées pour chaque modèle de périphérique.

0
shim

Pour moi, le problème était que je pouvais voir les nouveaux fichiers image ajoutés sur Show the media library mais pas dans la liste déroulante pour mon bouton Image

Pour moi, la solution était de taper le nom manuellement. Lorsque j'ai commencé à taper les noms d'images dans la zone de texte, il l'a rempli automatiquement et le tour est joué. |

PS: j'ai également implémenté la solution sélectionnée avant de le faire

 enter image description here

0
Yousuf Azad

J'ai rencontré ce problème plusieurs fois - parfois (je ne suis pas sûr de savoir pourquoi ...), Xcode semble oublier le lien entre UIImageView et l'image de votre dossier. 

Cela peut alors être aussi simple que d'aller dans l'inspecteur d'attributs pour cette vue d'image, et si la zone d'image indique 'Image inconnue', sélectionnez à nouveau l'image correcte!

 UIImageView attributes inspector

0
James Wirth

J'ai eu ce problème plusieurs fois. Et copier le répertoire du projet sur le bureau, renommer le dossier d'origine, ouvrir le projet à partir du nouvel emplacement et le déplacer vers le répertoire d'origine a été une aide précieuse à chaque fois. Toutes les solutions "Charger tous les fichiers d'en-tête" fonctionnent parfois et parfois ne fonctionnent pas.

0
Tintenklecks

Assurez-vous de référencer un actif image qui existe réellement . J'avais ajouté mes fichiers au catalogue d'actifs Xcode (.xcassets) comme d'habitude, mais j'avais oublié de renommer le nom par défaut "Image" en le nom que j'utilisais dans le storyboard.

0
John Erck

Si aucune de ces réponses ne fonctionne, l'une des raisons possibles pourrait être: Si vous utilisez un bouton UIB et y affichez une image, assurez-vous que ce bouton n'a pas de titre. Une ellipse (...) s'affichera car la légende du bouton est tronquée.

0
Pritesh Desai

Le fichier .png manquait à la fin du nom de mon image dans l'inspecteur d'attributs

Après le nettoyage, la réimportation et la vérification des ressources correctement mappées, rien ne fonctionnait, bien que mon image (qui est un png) apparaisse une fois que j'ai entré .png à la fin du nom de l'image dans le panneau des attributs.

enter image description here

0
Jim Tierney

Si toutes les images 1x, 2x et 3x sont définies, nettoyées et construites et que le projet ne s'affiche toujours pas correctement, quittez Xcode et forcez-le à quitter, puis rouvrez Xcode. Un simple redémarrage de Xcode a fonctionné pour moi.

0
Grease

J'avais les mêmes symptômes, mais je viens de déplacer le dossier de projet sur le bureau, de relancer le projet dans IB à partir de là et cela a fonctionné! Puis remettez-le dans le même dossier parent, sous un nom différent ... étrange.

0
oberbaum

Cela s'est produit lorsque j'ai déplacé les images vers xcassets. Je l'ai résolu en supprimant les extensions png et jpg sur Inspector. 

0
Tanhan