2010-04-25 5 views
0

J'ai une vue UITable qui affiche une image dans le côté gauche de la cellule du tableau, et cela fonctionne très bien dans le simulateur.UIImages ne s'affiche pas dans TableView sur iPhone, mais fonctionne dans le simulateur

Seul problème, une fois que je l'ai exécuté sur mon appareil aucune image n'apparaît. C'est juste un espace blanc vide.

Avoir vérifié que les images sont ajoutées au dossier de ressources pour la construction (ce qu'elles sont) et que les majuscules etc. correspondent (ce qu'elles font).

Des idées?

Merci.

Code pour afficher les images:

cell.imageView.layer.masksToBounds = YES; 
    cell.imageView.layer.cornerRadius = 5.0; 

    UIImage *image = [UIImage imageNamed:[[dog types] stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]];; 
    if (image) { 
     cell.imageView.image = [image imageScaledToSize:CGSizeMake(50, 50)]; 
    } 

Répondre

0

C'est le problème d'images, pas votre code (si elles montrent dans le simulateur). Plusieurs fois, lorsque les images ne sont pas dans un format approprié (de sorte que l'iPhone peut comprendre) et plusieurs fois le changement de nom fait le mauvais travail (supposons que vous avez changé l'extension sans changer le format).

Vous ne pouvez pas comparer un simulateur avec un iPhone, car le simulateur profite des avantages de mac-os, il peut donc faire certaines choses que l'iPhone ne peut pas faire. Donc, la morale de l'histoire est de recréer vos images, et vérifiez votre code avec d'autres images (images qui ont été montrées sur l'appareil dans d'autres projets).

Merci,

Madhup

+0

Ce sont des fichiers PNG - et trois d'entre eux ont été affichés jusqu'à ce que je nettoie les fichiers d'en-tête. – Graeme

0

Vérifiez la version iPhone SDK sur lequel vous exécutez dans XCode.

il devrait être le même que l'iPhone OS de votre iPhone contient.

Peut être c'était la question ...

+0

Hmm, ont vérifié, ne semble pas être un problème - les deux match. – Graeme

+0

salut, Graeme UIImage * image = [UIImage imageNamed: [[types de chien] stringByTrimmingCharactersInSet: [NSCharacterSet whitespaceAndNewlineCharacterSet]] ];; Dans cette ligne, vérifiez le nom de l'image (en mode débogage) ce que vous obtenez et le nom de l'image ce qui est réellement dans le dossier de ressources. il devrait être mached ... –

+0

Comment diriez-vous que je fais cela? Merci. – Graeme

0

vous pouvez avoir une autre sollution pour obtenir des images arrondies si vous voulez essayer:

UIImageView * roundedView = [[UIImageView alloc] initWithImage: [UIImage imageNamed:@"wood.jpg"]]; 
// Get the Layer of any view 
CALayer * l = [roundedView layer]; 
[l setMasksToBounds:YES]; 
[l setCornerRadius:10.0]; 

// You can even add a border 
[l setBorderWidth:4.0]; 
[l setBorderColor:[[UIColor blueColor] CGColor]]; 
+0

Bien que cela fonctionne pour la plupart des 'UIView's, je ne pense pas que vous pouvez le faire avec un' UIImageView' en raison de l'implémentation interne de 'UIImageView'. –

0

vous remplacer le code avec cela et voir le journal dans la console :

NSString *strImgName = [[dog types] stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]]; 

NSLog(@"%@",strImgName); 

UIImage *image = [UIImage imageNamed:strImgName]; 

et voir ce que vous obtenez comme un nom d'image et MACH avec votre image réelle dans le dossier des ressources ... il devrait être la même (c.-à-apple.png = apple.png) y compris *. extensions

0

Essayez ceci, si l'image fait partie du groupe de ressources.

UIImage * cellImage = [UIImage imageWithContentsOfFile: [[NSBundle mainBundle] pathForResource: [[types de chiens] stringByTrimmingCharactersInSet: [NSCharacterSet whitespaceAndNewlineCharacterSet]] ofType: @ ".png"]];

+1

si cela ne fonctionne pas, alors vos images ne doivent pas être dans un format approprié. Utilisez l'aperçu pour le changer à celui désiré. –

0

Je sais, c'est tout à fait un ancien poste, mais je pense que je dois partager ce qui était mon problème, quelque part

Dans mon cas, j'avais le code suivant

UIImageView *tempImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"some-Background.png"]]; 
[tempImageView setFrame:self.tableView.frame]; 
[self.tableView setBackgroundView:tempImageView]; 

mais mon L'image a été nommée "some-background.png".

Dans le simulateur tout avait l'air bien, mais sur le téléphone je n'ai pas de fond. Il semble que le simulateur soit insensible à la casse, alors que l'iPhone ne l'est pas.