UITableViewCell, insertion de sous-titres
Bonjour à tous,
aujourd'hui j'ai un nouveau petit souci :
j'ai une page tableView avec plusieurs cellules. J'aimerai ajouter des sous-titres qui peuvent être modifié à partir du code.
Par exemple si je vais sur la première cellule, celle ci m'amène sur une vue où je saisie quelques données. Quand je reviens sur la tableView j'aimerai faire un petit récapitulatif de ce qu'il a saisie dans les sous-titres.
J'ai initialisé mes cellules pour pouvoir mettre des sous-titres, mais je ne trouve pas la fonction pour éditer les sous-titres... (oui je suis passé sur la doc ^^)
merci à tous,
tbille
Mots clés:
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Pour accéder à la cellule, ça se fait via
Ok j'avais pas mit le .text
merci beaucoup
tbille
Si tu préfères, normalement tu peux aussi faire
Je poursuit le probleme mon label detail ne s'affiche pas sauf si je fais :
Et ca ne marche pas tres bien c'est a dire de base ma tableviewcell me mene vers une autre vue , bah qund je met la ligne du dessus ca ne le fait plus
Actuellement j'ai ca mais ca ne permet pas l'affichage du detail :
Quelqu'un aurait une idee ?
Pas très claire ton histoire. De quel label parles-tu ? (le sujet ici c'est detailTextLabel, une propriete de UITableViewCell). Utilises-tu Storyboard ? N'hésite pas à monter l'ensemble du code de ta méthode.
La je suis plus au travail.... Je vous montrerai demain
Mais sinon je peux vous expliquer avec des images sur internet en gros
http://s3.amazonaws.com/skillshare/uploads/project/fa1eaee0121b0b404e54f40d6e15e314/492491c2
en gros ma tableview ressemble à ça
Et si je rajoute le detailLabel de UITableview cell ca ne fait rien
Bon jusqu'à là j'espère que vous comprenez
//////////////////////////////////// petite séparation moche /////////////////////////////////////////
Et sur le net j'ai trouvé un moyen d'afficher le detailText de la cell mais je me trouve avec quelque chose comme ca
C'est cool j'ai mon detail qui s'affiche mais pas la petite flèche à droite qui me permet de switchez de vue
Je vais essayer de faire un projet simple tout à l'heure sur mon mac pour vous illustrer la chose
Si c'est pas clair je vous enverrai de vrais screens demain
Ce que tu appelles la "petite flèche" est un disclosure indicator. Pour le faire apparaà®tre il faut positionner la propriété accessoryType de ta cell à UITableViewCellAccessoryDisclosureIndicator :
Si tu utilises Storyboard, tu peux positionner cette valeur par défaut pour ta cell dans l'inspecteur d'attribut.
Plus d'info sur la gestion des cell, toujours et encore dans la doc Apple.
Bon me revoila donc oui j'ai pu utiliser le accessory type mais toujours le même problème le détail ne s'affiche pas
Et bien entendu voici l'image
http://www.hostingpics.net/viewer.php?id=428240Capturedcran20130502223939.png
#import <UIKit/UIKit.h>
@interface ViewController : UIViewController <UITableViewDelegate,UITableViewDataSource>
{
IBOutlet UITableView *mainTableView;
}
@property (nonatomic,retain) IBOutlet UITableView *mainTableView;
@end
#import "ViewController.h"
@interface ViewController ()
{
NSMutableArray *tableau;
}
@end
@implementation ViewController
@synthesize mainTableView;
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return 1;
}
- (NSInteger)tableView:(UITableView*)tableView numberOfRowsInSection:(NSInteger)section {
return 3;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *cellId = @identifier;
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier: cellId];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellId];
}
//[cell setText:[NSString stringWithFormat:@e%@",indexPath]:[indexPath row]];
cell.textLabel.text = @Ma phrase;
cell.textLabel.textColor = [UIColor redColor];
cell.detailTextLabel.text = @Ma phrase en detail;
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
return cell;
}
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
}
@end
Problème résolu temporairement car ça a marché chez moi mais pas au travail, merci @Kubernan
Je vous re-contacterai demain si ça ne vous dérange pas avec mon autre code qui ne passe pas très bien
Enfin j'ai juste remplacé la ligne
Par la ligne
Normalement, ceci devrait faire l'affaire :
Ah pas faux dans ce code ça marche, mais au travail sur un projet ça ne marche pas et donc ça me tracasse. j'essaierai demain matin et je vous tiendrai au courant
Et dans les deux cas tu as la même configuration ? Je veux dire version de Xcode, utilisation de Storyboard par exemple ?
Reprenons depuis le début.
Quand on utilise le storyboard il ne faut pas utiliser initWithStyle car dequeueReusableCellWithIdentifier ne rend jamais nil si l'identifiant passé en paramètre a été déclaré dans un template de cellule dans le storyboard.
La bonne pratique est de créer des templates de cellule dans le storyboard en prenant soin d'y définir l'identifiant et le style de cellule, voire sa classe si l'on veut une classe de cellule particulière.
À mon avis on va le voir souvent ce code d'init d'une cell : j'ai bien l'impression que certains se lancent dans Storyboard en reprenant des bouts de code qui ne prennent pas en compte Storyboard. Sacré mélange.
C'est lassant surtout que la doc. Apple est très claire sur ce sujet.
Je suis desole si je suis lassant mais je suis un newbie , je suis CONSCIENT que la doc d'Apple est SUPERBE, il me semble que pour un petit souci comme celui la ou tant d'autre la doc serai une perte de temps enfin je crois. Mais la je n'utilise pas le intWithStyle car ca ne me plait pas écrit comme au dessus mais @Larme me l'a propose mais j'ai oublie de vous signaler que j'utilisais le storyboard dsl
Voici le code en question
JE n'UTILISE PAS le initWithStyle comme vous l'aviez demande mais que je l'utilise ou pas ca ne marche pas
Voici 2 images du storyboard
http://www.hostingpics.net/viewer.php?id=583550Capturedcran20130503111000.png
http://www.hostingpics.net/viewer.php?id=935228Capturedcran20130503111237.png
Et du resultat
http://www.hostingpics.net/viewer.php?id=377576Capturedcran20130503101347.png
Oui voila c'est ca j'ai la meme version et j'utilise dans les 2 cas le storyboard
Donc voir ci-dessus le code + images
Il te suffit de choisir la type de cell que tu veux dans la partie Style (qui est actuellement à Basic) dans la partie du Storyboard où tu as fait ta capture écran.
Je t'ai posé la question de l'utilisation Storyboard depuis le début. D'autres aussi l'ont mentionné. Faudrait lire attentivement.
Une perte de temps comparé au temps passé à poster ton problème ? (Et sans prendre en compte le temps qu'on prend pour te répondre ?). La doc Apple contient même le code complet qu'il suffit de copier/coller et d'adapter à ton besoin.
MERCI oui il fallait donc juste changer le type de la cell
Je ferai plus attention a la doc alors desole pour le derangement.
C'est vrai que ce n'est pas une perte de temps mais la actuellement je refait le projet ,avec le storyboard , d'une personne qui l'a fait avec des .xib donc je me suis dit que le code sur la cell allait marche mais non. Je vous en remercie
Tu aurais lu le TableView Programming Guide tu aurais eu toutes les réponses à tes questions en lisant que quelques pages de doc, et en plus aurait appris beaucoup sur le fonctionnement global des TableViews.
La doc n'est JAMAIS une perte de temps.
Je ne dis plus le contraire maintenant @Kubernan m'en a convaincu. .