2010-11-12 23 views
0

J'ai un objet MObject qui est actuellement défini comme ceci:Comment puis-je utiliser un paramètre de chaîne pour spécifier une image pour une cellule de tableau iPhone?

+ (id)objectWithType:(NSString*)type name:(NSString*)name code:(NSString*)code imageName:(NSString*)imageName 
{ 
UIImage *theImage = [[UIImage alloc] imageNamed:imageName]; 
MObject *newObject = [[[self alloc] init] autorelease]; 
newObject.type = type; 
newObject.name = name; 
newObject.code = code; 
return newObject; 
} 

imageName est destiné à contenir le nom du fichier de l'image appropriée anImage.png. Une fois que j'ai mis cela, j'ai besoin que l'objet UIImage soit créé afin qu'il puisse être placé dans cell.imageView.image.

Je suis 1) pas clair sur si la direction que j'ai commencé à prendre (comme indiqué ci-dessus) est réalisable, 2) jusqu'à présent, comment je peux obtenir ce UIImage dans mon MainViewController. J'apprécie vraiment toute aide que vous offrez.

Répondre

1

Je l'ai! J'ai changé le code affiché dans mon message original à:

+ (id)objectWithType:(NSString*)type name:(NSString*)name code:(NSString*)code imageName:(NSString*)imageName 
{ 
MObject *newObject = [[[self alloc] init] autorelease]; 
newObject.type = type; 
newObject.name = name; 
newObject.code = code; 
newObject.imageName = imageName; 
return newObject; 
} 

Puis j'ai ajouté la ligne suivante à cellForRowAtIndexPath:

cell.imageView.image=[UIImage imagedNamed:object.imageName]; 

Et c'est tout ce qu'il fallait!

0
  • (UIImage *) newImageFromResource: (NSString *) {nom de fichier
    NSString * str = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent: filename]; UIImage * image = [[UIImage alloc] initWithContentsOfFile: str]; retourner l'image; }

et chaque fois que vous souhaitez définir l'image

UIImage * img = [UIImage newImageFromResource: @ "xyz.png"];

Vous pouvez définir img où vous voulez & ne pas oublier de libérer img

+0

Pourriez-vous expliquer où cela devrait aller dans mon code? Qu'est-ce que ça remplace? J'ai du mal à comprendre votre réponse. – scojac