2010-10-17 4 views
1

Je travaille sur une tableview cell personnalisée et tente d'augmenter sa hauteur. Je ne veux pas le faire depuis mon viewcontroller. Quelqu'un peut-il m'aider s'il vous plaît?augmenter la hauteur de la cellule personnalisée

Merci

+0

Pourquoi ne voulez-vous pas le faire dans le contrôleur de vue? Le contrôleur de vue est généralement responsable de traiter de telles choses puisque la plupart du temps c'est celui qui joue le rôle de délégué pour votre UITableView. – BoltClock

+0

parce que je suis la conception de la cellule dans une classe différente et veut faire tout le travail de conception pour la cellule dans cette classe personnalisée. Est-il possible? – pankaj

+0

Vous pouvez essayer ma solution mise à jour, mais cela peut être un peu coûteux. –

Répondre

4

En fait, vous besoin de le faire depuis votre UITableViewDelegate.

Qu'est-ce que vous pouvez faire cependant, est d'utiliser la méthode de cellForRowAtIndexPathUITableView pour obtenir la cellule réelle et appelez isKindOfClass: sur elle, et si il correspond au type de votre cellule personnalisée, vous êtes en or

Mettre en oeuvre la méthode tableView:heightForRowAtIndexPath: et retourner la hauteur souhaitée pour la ligne spécifiée.

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { 
    UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath]; 
    if([cell isKindOfClass:[YourCustomCell class]]) return someHeight; 
    return 44.0; 
} 
+0

mais je voulais faire une cellule personnalisée qui peut être utilisée tout de suite sans faire aucun changement dans sa conception ..... est-il possible de le faire sans utiliser la méthode delegate de tableview? – pankaj

+0

@pankaj - Non. –

0

Je crains que vous avez de le faire à partir de votre contrôleur dans le tableView:heightForRowAtIndexPath:. Il n'y a pas d'autre moyen de le faire. :(

+0

vous avez eu la bonne idée, mais le mauvais nom de la méthode. : P –

+0

Gah, aller ma mémoire ici :) Maintenant, je vais devoir vérifier réellement. Merci pour l'information. –

Questions connexes