Ajout d'une image à un tableview cell
Bonsoir
Je suis débutante sur iphone SDK et cela fait plusieurs soir que je prend la tête sur une question basique : comment ajouter une image à une UITableviewcell >:(
J'ai bien compris qu'en utilsant un UITableViewCellStyleDefault, l'image est optionnelle mais impossible de l'ajouter. J'ai retrouvé plusieurs ex de code mais à chaque fois, il y ades variables qui manque....
Voici mon code pour déclarer le type UITableViewCell:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:kCellIdentifier];
if (cell == nil)
{
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:kCellIdentifier] autorelease];
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
}
cell.textLabel.text = [[self.menuList objectAtIndex:indexPath.row] objectForKey:kTitleKey];
return cell;
}
Et la déclaration d'une des lignes de l'UITableViewCell dans lequel j'ai essayé d'ajouter une image (un des ex d'apple en l'occurence :
Introduction *introduction = [[Introduction alloc]
initWithNibName:@Introduction bundle:nil];
[self.menuList addObject:[NSDictionary dictionaryWithObjectsAndKeys:
NSLocalizedString(@Introduction, @""), kTitleKey,
/* cell.imageView.image = [UIImage imageNamed:@Gas_24.png];
*/
introduction, kViewControllerKey,
nil]];
[introduction release];
Bref, si quelqu'un peut aider une pauvre débutante ::)
Merci
Je suis débutante sur iphone SDK et cela fait plusieurs soir que je prend la tête sur une question basique : comment ajouter une image à une UITableviewcell >:(
J'ai bien compris qu'en utilsant un UITableViewCellStyleDefault, l'image est optionnelle mais impossible de l'ajouter. J'ai retrouvé plusieurs ex de code mais à chaque fois, il y ades variables qui manque....
Voici mon code pour déclarer le type UITableViewCell:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:kCellIdentifier];
if (cell == nil)
{
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:kCellIdentifier] autorelease];
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
}
cell.textLabel.text = [[self.menuList objectAtIndex:indexPath.row] objectForKey:kTitleKey];
return cell;
}
Et la déclaration d'une des lignes de l'UITableViewCell dans lequel j'ai essayé d'ajouter une image (un des ex d'apple en l'occurence :
Introduction *introduction = [[Introduction alloc]
initWithNibName:@Introduction bundle:nil];
[self.menuList addObject:[NSDictionary dictionaryWithObjectsAndKeys:
NSLocalizedString(@Introduction, @""), kTitleKey,
/* cell.imageView.image = [UIImage imageNamed:@Gas_24.png];
*/
introduction, kViewControllerKey,
nil]];
[introduction release];
Bref, si quelqu'un peut aider une pauvre débutante ::)
Merci
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
C'est bien cette ligne là qu'il te faut :
Bien entendu, il faut que l'image en question soit associée au projet dans les ressources.
Sinon pour ma part j'utilise d'abord un UITableViewCell pour personnaliser de A à Z ma cell (image, texte, positionnement du tout) qu'ensuite j'utilise dans mon tableview.
J'avais déjà essayé et j'ai un message d'erreur
Une idee?
merci
C'est bourré de fautes
As-tu lu la doc Apple un peu ? Et as-tu déjà programmer avant de te mettre sur l'iPhone ?
Non parce que là je vois même pas ce que tu veux faire.
Bon ceci dit oui cecile92, si tu as mis ton code [tt]cell.imageView.image = ...[/tt] à cet endroit dans ce code, c'est soit que tu n'as pas réfléchi, soit que tu n'as rien compris quant à la syntaxe de l'Objective-C... mais là tu as mis une ligne de code en plein milieu d'une instruction de code même pas terminée... c'est quand même un peu n'importe quoi.
C'est comme si tu avais une phrase "J'apprend à faire une appli iPhone", qu'on te demandais de rajouter l'info "ceci est mon premier programme", et que tu modifiais ta phrase en "J'apprend à ceci est mon premier programme faire une appli iPhone", ce qui n'a plus aucun sens.
[font=verdana, helvetica, sans-serif][/size][/font]
[font=verdana, helvetica, sans-serif]Et je suis vache [size=small] :P [/size][/size][/font]
Lorsque je n'aurais rien à vous demander, je m'adresserais à vous
Là je suis rhabillée pour l'hiver, çà tombe bien, on est en pleine canicule
Certes je démarre et avec des forums comme celui ci, je risque effectivement de ne pas aller plus loin.
Si un de vous deux veux bien me faire une réponse claire sans augmenter ma garde robe je suis preneuse sinon....
Ton erreur : error: 'cell' undeclared (first use in this function)
C'est simplement parce que tu n'as aucune variable cell définie dans ton code.
Ensuite tu marques la fin d'une ligne de code par un ";" juste après "icon.png]" or tu es encore addObject.
Sinon dans un forum comme celui-ci on va se présenter aux autres ici
Bon, voilà où j'en suis,
soit j'arrive à mettre la même image dans toutes les lignes (pas la peine de me dire que c'est normal vu où je mets ma ligne de code
soit j'ai cette foutu erreur et je ne vois pas comment déclarer cette "cell"
Voilà le code qui me permet de mettre la même image partout..
Introduction *introduction = [[Introduction alloc]
initWithNibName:@Introduction bundle:nil];
[self.menuList addObject:[NSDictionary dictionaryWithObjectsAndKeys:NSLocalizedString(@Introduction, @""), kTitleKey,
introduction, kViewControllerKey,
nil]];
[introduction release];
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:kCellIdentifier];
if (cell == nil)
{
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:kCellIdentifier] autorelease];
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
}
cell.textLabel.text = [[self.menuList objectAtIndex:indexPath.row] objectForKey:kTitleKey];
cell.imageView.image = [UIImage imageNamed:@icon.png];
return cell;
}
ici pour chaque row de ton indexPath (pour chaque cell en gros) tu affiches icon.png .
Bon, voilà où j'en suis,
soit j'arrive à mettre la même image dans toutes les lignes (pas la peine de me dire que c'est normal vu où je mets ma ligne de code
Donc question subsidiaire : ou dois je mettre cette foutu ligne de code dans mon code pour y arriver ....Ou alors tu veux me faire tourner en bourrique toute la soirée. c'est le bizzutage?
Merci
et ensuite dans ton dictionnaire ajouter tes images avec kTitleImage. Ca marche exactement pareil que :
Celle ci me parait claire
OK pour mettre autant d'icone que nécessaire ( cela me paraissait clair)
Par contre j'abuse si je te demande ce que je dois mettre dans une des lignes du tableau :
Introduction *introduction = [[Introduction alloc]
initWithNibName:@Introduction bundle:nil];
[self.menuList addObject:[NSDictionary dictionaryWithObjectsAndKeys:NSLocalizedString(@Introduction, @icon.png), kTitleKey,
introduction, kViewControllerKey,
nil]];
[introduction release];
Ton menuList est un tableau n'est-ce pas ? Il faut faire ça dans l'autre sens. Un NSDictionary qui contient deux tableaux avec une clef différente ("Image","Texte" par exemple).
Donc pour le moment, pas fais de tableau, je voudrais ajouter une image sur une ligne particulièe de ce mon tableview cell
Je pensais que l'on pouvais la faire de manière simple mais soit j'exprime mal ma demande (ce qui est largement possible....) soit ce n'est pas possible......
Je voudrais juste ajouter l'image "icon" à une ligne particulière de mon tableau
je ne souhiate pas pour le moment faire de tableau de valeur (ou alors je ne comprends pas ton message) car certaines lignes de mon UITableview cell sont juste une UIview tandis que d'autres sont d'autres UITableView.
Bref, je sais très bien bien que je barbote dans le bac à sable mais si ta réponse pouvais se mettre à mon niveau.....
Merci
Yes
Et en plus, tu dois vraiment admirer ma nullité mais cele me permet de comprendre pas mal de chose
Merci beaucoup
Bonjour,
je ré-ouvre le sujet, en effet j'ai une petite question qui ne devrai pas être trop compliqué pour les Maitres Jedi, j'ai demandé à Monsieur StackOverF... mais j'ai rien trouvé, anyway, comment modifier la taille de l'imageView sans passer par une custom cell
L'image un bien la mais elle occupe toute la hauteur de la cell, j'aurai voulu des marges pour rendre plus jolie !!!!
Merci
Pour modifier la taille (et la position) d'une imageView il suffit de modifier sa frame :
Dans le cas d'une imageView optionnelle encapsulée dans une cellule :
Pour avoir des marges, tu peux calculer la frame à partir de la taille de la cellule. Un truc du genre (code non testé) :
Donc dans le cas particulier où tu utilises UITableViewCell et ses imageView, textLabel et detailTextLabel par défaut, vu qu'elle va repositionner ces éléments avant de s'afficher, y'a des chances que ça ne serve à rien de modifier la frame vu qu'elle va être re-changée plus tard.
Non vraiment, c'est quand même bien plus simple de faire une sous-classe de UITableViewCell dès le moment où tu veux la customiser ne serait-ce qu'un minimum. C'est pensé pour de toute façon.
Effectivement, je n'ai jamais essayé avec une UITableViewCell par défaut. Merci de me prévenir du piège.
OK, c'est bien ce qui me semblais, il ne prenais pas mes modification en compte, bon allons pour une sous classe de UITableViewCell
Merci beaucoup.
Hey hey autre question !!! dites moi, est il possible de mettre des auto-layouts sur la taille de font des textes dans les UITableViewCell qui ce changerait en fonction d'un iPad ou iPhone, ou alors faut absolument faire une condition avec détection de iDevice ????
Autre question .. nouveau topic !
oki !!! Je voulais pas trop polluer et vu qu'on reste sur des UITableViewCell même si ce n'est pas sur les images !!! sorry sorry