2010-12-31 4 views
0

Je veux faire un UITableView qui ajuste automatiquement sa taille de cellule par son contenu.Table automatiqueVoir la taille des cellules dans l'iPhone?

Le contenu provient du fichier XML et les données sont simplement du texte.

Je veux mettre le texte dans un cell et il devrait être automatiquement fait word-wrap et supporte multi-ligne.

Chaque cellule peut donc avoir une hauteur différente. Est-ce possible?? ou une idée?

Merci;)

Répondre

1

Oui, c'est possible. Utiliser la méthode suivante pour le faire,

- (CGFloat)tableView:(UITableView *) tableView heightForRowAtIndexPath: (NSIndexPath *)indexPath { 
CGSize cellHeight; 
if (indexPath.row == 0) { 
    cellHeight = [yourXMLContents sizeWithFont:[UIFont systemFontOfSize:13.0f] constrainedToSize:CGSizeMake(300.0, 1000.0) lineBreakMode:UILineBreakModeWordWrap]; 
    return cellHeight.height + 20; 
} else 
    return 30; 

}

+0

J'ai essayé ceci mais pour une raison quelconque la valeur de retour de la méthode heightForRowAtIndexPath est plus de 50, mais la taille de la cellule est toujours 46 dans la méthode cellForRowAtIndexPath. Pourquoi donc? heightForRowAtIndexPath est appelée en premier, puis cellForRowAtIndexPath est appelé. – SeniorLee

+0

Enfin cela fonctionne. Merci pour votre conseil! – SeniorLee

0

Avez-vous regardé le three20 library? Il va redimensionner les cellules pour s'adapter au contenu. À tout le moins, vous pouvez regarder comment le code est implémenté pour redimensionner les cellules.

+0

merci, je ne l'ai jamais entendu parler Three20. Mais maintenant je peux au moins regarder comment ça se passe. BTW êtes-vous coréen? – SeniorLee

+0

yessir, je suis coréen :) – donkim

+0

content de voir coréen dans StackOverflow;) – SeniorLee

Questions connexes