2010-09-23 6 views
5

J'ai une chaîne assez longue qui est tronquée lorsqu'elle est affichée dans une cellule tablView. Je l'ai fait pour que l'affichage de la table plus large:Comment afficher plusieurs lignes dans une cellule tableView

tableView.rowHeight = 100; 

Comment puis-je faire de la police plus petite, ainsi que envelopper le texte dans la vue de table cellulaire?

Répondre

14

Dans tableView:cellForRowAtIndexPath:, vous pouvez définir quelques propriétés sur le textLabel (ou descriptionLabel, selon le style de cellule que vous utilisez) pour le faire. Set font pour changer la police, linkBreakMode pour le rendre mot-wrap, et numberOfLines pour définir le nombre de lignes maximum (après quel point il tronque. Vous pouvez définir que 0 pour ne max.

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 
    UITableViewCell* aCell = [tableView dequeueReusableCellWithIdentifier:kMyCellID]; 
    if(aCell == nil) { 
     aCell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:kMyCellID] autorelease]; 

     aCell.textLabel.font = [UIFont fontWithName:@"Helvetica" size:10.0]; 
     aCell.textLabel.lineBreakMode = NSLineBreakByWordWrapping; // Pre-iOS6 use UILineBreakModeWordWrap 
     aCell.textLabel.numberOfLines = 2; // 0 means no max. 
    } 

    // ... Your other cell setup stuff here 

    return aCell; 
} 
+0

Cette est obsolète dans iOS 6. Comment pouvez-vous le faire dans iOS6 ??? – Napolux

+1

Autant que je sache, la seule chose obsolète dans iOS6 est 'UILineBreakModeWordWrap'. 'NSLineBreakByWordWrapping' est l'équivalent iOS6. – zpasternack

0

Vous devez sous-classer UITableViewCell et lui attribuer un UITextView au lieu d'un UITextField. Puis assignez votre sous-classe à votre UITableView.

2
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 
    UITableViewCell* Cell = [tableView dequeueReusableCellWithIdentifier:kMyCellID]; 
    if(Cell == nil) { 
     Cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:kMyCellID] autorelease]; 

     Cell.textLabel.font = [UIFont fontWithName:@"TimesNewRoman" size:10.0]; 
     Cell.textLabel.lineBreakMode = UILineBreakModeWordWrap; 
     Cell.textLabel.numberOfLines = 2; // 0 means no max. 
    } 

    // your code here 

    return Cell; 
} 
Questions connexes