Je veux calculer le nombre de lignes lorsque nous donnons du texte dans UITableviewcell? J'ai inséré du texte via UITextview qui est dans UITableview cell.but je veux augmenter la hauteur de la cellule basée sur UItextview qui est dans UITableview cell.suppose si elle a 4 lignes, une hauteur ... sinon autre hauteur ... je veux aussi calculer combien de lignes sont dans UITextview ... et aussi définir la hauteur à l'exécution? des pls d'aide ..?calculer le nombre de lignes lorsque nous donnons du texte dans UITableviewcell?
Répondre
Pour calculer la taille approximative de votre UITextView
en fonction d'une chaîne, essayez la méthode - (CGSize)sizeWithFont:(UIFont *)font constrainedToSize:(CGSize)size lineBreakMode:(UILineBreakMode)lineBreakMode
de NSString
.
Par exemple:
NSString *myText = @"Lorem ipsum dolor sit amet, consectetur adipisicing...";
CGSize newSize = [myText sizeWithFont:[textView font]
constrainedToSize:CGSizeMake([textView frame].size.width, MAXFLOAT)
lineBreakMode:UILineBreakModeWordWrap];
CGFloat newTextViewHeight = newSize.height;
CGFloat newTableViewCellHeight = newTextViewHeight + 42;
... où textView
fait référence à votre UITextView
. (J'ai également supposé que le mode de saut de ligne de votre UITextView
est UILineBreakModeWordWrap
, sinon assurez-vous de changer le code approprié.)
Vous pouvez calculer la taille ajustée d'un UILabel basé sur le contenu NSString en utilisant la catégorie UIKitAdditions sur NSString. Ces méthodes comprennent ...
-sizeWithFont:
-sizeWithFont:constrainedToSize:
-sizeWithFont:constrainedToSize:lineBreakMode:
-sizeWithFont:forWidth:lineBreakMode:
-sizeWithFont:minFontSize:actualFontSize:forWidth:lineBreakMode:
Dans mes implémentations de ce modèle, j'utilise généralement le troisième, -sizeWithFont:constrainedToSize:lineBreakMode:
.
Les implémentations les plus efficaces de UITableViewCells à hauteur variable ne calculent la taille qu'une seule fois par chaîne affichée. Ceci est généralement une opération coûteuse et vous ne voulez certainement pas que des opérations coûteuses soient effectuées fréquemment pendant le défilement - votre FPS défilant passera à travers le plancher. Cela signifie mettre en cache la hauteur calculée quelque part, et pour moi c'est quelque part l'objet modèle associé à la ligne spécifique.
Personnellement, je crée une sous-classe personnalisée de UITableViewCell chaque fois que j'implémente une cellule de table à hauteur variable. Je crée ensuite une méthode de classe qui effectue simplement l'opération sizeWithFont:constrainedToSize:lineBreakMode:
étant donné un objet modèle qui contiendra la chaîne affichée en tant que paramètre. Le contrôleur vue de table mise en œuvre de tableView:heightForRowAtIndexPath:
de puis ressemble à ceci:
- (CGFloat)tableView:(UITableView*)tableView heightForRowAtIndexPath:(NSIndexPath*)indexPath {
CGFloat height;
DataObject *rowData = [self.dataArray objectAtIndex:indexPath.row];
if (rowData.cachedHeight) {
height = [rowData.cachedHeight doubleValue];
} else {
height = [CustomTableViewCell heightForRowWithString:rowData.contentStr];
rowData.cachedHeight = [NSNumber numberWithDouble:height];
}
return height;
}
N.B. Vous pouvez/devriez probablement utiliser un UILabel, plutôt qu'un UITextView, puisque vous n'avez pas besoin du comportement de défilement de UITextView.
- 1. Comment calculer le nombre de lignes du projet
- 2. Calculer le nombre de lignes possible dans RitchTextField
- 3. Comment calculer le nombre de lignes dans un "projet Java"
- 4. Calculer le nombre de lignes de jeu de données
- 5. Calculer la hauteur de la cellule en fonction du nombre de lignes?
- 6. Déterminer le nombre de lignes dans un fichier texte
- 7. compter le nombre de lignes dans un fichier texte
- 8. Obtention du nombre de lignes affichées dans une zone de texte multiligne dans le cadre compact
- 9. Restriction du nombre de lignes dans Datalist
- 10. Affichage du texte en gras de SQLite dans UITableViewCell
- 11. Comment calculer le nombre de lignes dans une relation 1-à-plusieurs dans PowerPivot
- 12. UITableViewCell: texte avec des lignes stylisées à l'intérieur de l'étiquette
- 13. Pouvons-nous limiter le nombre de lignes dans une table dans MySQL?
- 14. Pouvons-nous modifier la TextColor UITableViewCell lorsque nous sélectionnons la cellule?
- 15. Le texte de UITableViewCell est manquant lorsque l'on fait défiler vers le bas
- 16. Déterminer le nombre de lignes dans une plage
- 17. nombre de lignes dans UILabel
- 18. Texte de réglage UITableViewCell
- 19. Sélection du nombre de lignes du jeu de résultats
- 20. calculer le nombre total de jours dans les dates specied
- 21. Modifier la couleur du texte dans UITableViewCell basé sur le texte
- 22. Calculer le nombre de combinaisons 2xadult + 2xchild
- 23. Nombre maximum de lignes dans le SGBD
- 24. dupliquer des lignes dans tableview sur uitableviewcell
- 25. Nombre de lignes dans csv.DictReader
- 26. Nombre de lignes dans textView
- 27. Texte de cellule réimprimé dans un UITableViewCell
- 28. UITableViewCell hauteur avec 0 lignes
- 29. Changer la couleur du texte dans la personnalisation UITableViewCell iphone
- 30. Comment calculer correctement le nombre de niveaux dans un tableau?