Calcul du nombre de lignes de la dynamique UILabel (iOS7)
Il y a beaucoup de solutions à ces questions autour de, mais ne pouvait pas trouver non dépréciées.
J'ai un UILabel
avec le mode de retour à la ligne et de largeur fixe, disons 250. Les lignes sont mis à 0.
Voici ce que j'ai essayé:
UILabel *contentLabel = (UILabel*)[contentView viewWithTag:10];
CGSize size = [contentLabel.text sizeWithFont:contentLabel.font forWidth:contentLabel.frame.size.width lineBreakMode:NSLineBreakByWordWrapping];
NSLog(@"Label's height is: %d", size.height);
La sortie de hauteur param est toujours 20 (c'est comme une ligne), tout en te texte de 30 lignes de long.
J'en ai besoin pour UIScrollView fins.
Si la réponse est oui, alors s'il vous plaît essayer cette [contentLabel sizeToFit]; Espérons que Cela permettra de résoudre votre problème.
Il n'y a aucune mention de l'utilisation de la UITableView.
désolé..merci pour le rendre remarqué pour moi..avez-vous essayé cette [contentLabel sizeToFit];
Dans la mesure où dans votre code que vous avez écrit forWidth , il devrait être constrainedToSize
Cmd + clic sur sizeWithFont:forWidth:lineBreakMode: et vous voyez la nouvelle méthode suggéré d'utiliser plutôt obsolète. Vous pouvez également utiliser la pré-version de la documentation de plus de détails.
Il n'y a aucune mention de l'utilisation de la UITableView.
désolé..merci pour le rendre remarqué pour moi..avez-vous essayé cette [contentLabel sizeToFit];
Dans la mesure où dans votre code que vous avez écrit forWidth , il devrait être constrainedToSize
Cmd + clic sur sizeWithFont:forWidth:lineBreakMode: et vous voyez la nouvelle méthode suggéré d'utiliser plutôt obsolète. Vous pouvez également utiliser la pré-version de la documentation de plus de détails.
OriginalL'auteur Jacek Kwiecień | 2013-09-13
Vous devez vous connecter pour publier un commentaire.
Utilisation suggérée dans la documentation de la méthode :
E. g.
N'oubliez pas de plafond de la largeur et de la hauteur; ceil(labelRect.taille.la largeur);
Mais celle-ci ne renvoie la hauteur d'une ligne. Comment fonctionne pour plusieurs lignes?
voir ma réponse pour savoir comment j'ai travaillé autour de la seule hauteur de la ligne de résultat
Comment pouvez-vous trouver le nombre de lignes à partir de cela??
OriginalL'auteur Numeral
J'ai eu du mal en utilisant boundingRectWithSize directement sur mon UILabel de attributedText — il a été pas de la comptabilité pour l'étendre sur plusieurs lignes, (le retour de la hauteur a toujours 17.5). Pour contourner ce problème, j'ai dû utiliser boundingRectWithSize sur le UILabel de texte propriété et le passer dans les attributs dictionnaire séparément (et pas via
[self.myLabel.attributedText attributesAtIndex:0 effectiveRange:nil]
).Je crois que ce post est pertinent pour la question, même si elle ne répond pas elle
vous devriez appeler ce code uniquement lorsque l'image est déjà connu; ne Peut pas faire d'une autre façon, j'ai peur. Appelez cette fonction au moment opportun, comme le viewDidLoad etc
C'est tellement stupide. J'ai besoin de ce problème exact pendant des heures. Pourquoi sur la terre ne serait pas les attributs existants de travail?
OriginalL'auteur AlexD
Vous pouvez utiliser cette méthode simple:
qui retourne le nombre de lignes
en appelant
OriginalL'auteur Sarat Patel
Ce sera votre Exacte de la dynamique de la hauteur de l'Étiquette. Amusez-vous bien!!!
OriginalL'auteur onkar dhanlobhe
Essayer
Dans iOS 7,vous pouvez utiliser boundingRectWithSize: au lieu sizeWithFont:.
OriginalL'auteur Siddh
Ici, c'est la méthode que j'ai choisi:
UILineBreakModeWordWrap est deprecrecated utilisation NSLineBreakByWordWrapping
Dans iOS 7,
sizeWithFont:...
est obsolète. UtilisationboundingRectWithSize:...
à la place.OriginalL'auteur ninja_iOS