uilabel troncature queue
Je travaille sur une application ios à l'aide objective-c et j'ai un problème avec uilabel que je pourrais utiliser un peu d'aide. Fondamentalement, j'ai un label qui peuvent changer de taille en fonction du texte qu'elle s'affiche, mais il a une hauteur maximale qu'il peut être possible. l'étiquette elle-même a une largeur fixe à tout moment. j'ai tourné sur UILineBreakModeWordWrap et UILineBreakModeTailTruncation pour rendre le texte de l'ajustement et de les tronquer, mais cela provoque le texte à tronquer la queue trop tôt quand il a seulement 1 mot de la gauche vers la place. plutôt que de le déplacer sur la ligne suivante quand il y a encore de la place juste tronque.
self.frame = CGRectMake(self.frame.origin.x, self.frame.origin.y, fixedWidth, 0);
self.lineBreakMode = UILineBreakModeWordWrap | UILineBreakModeTailTruncation;
self.numberOfLines = 0;
[self sizeToFit];
est-il de toute façon de trouver lors de la uilabel est en fait le fait de tronquer le texte donc, je peux alors vérifier l'étiquette de la hauteur et de les compléter si il y a encore de la place ? J'ai essayé de toujours ajouter une ligne supplémentaire à la hauteur quand il ya de la place et cela évite le début de la troncature mais alors im gauche incompatible avec le dimensionnement de l'étiquette. toutes les idées sur ce serait génial merci
Vous devez vous connecter pour publier un commentaire.
lineBreakMode
est un commutateur. Il peut être soit (pour iOS6+)NSLineBreakByWordWrapping
ouNSLineBreakByTruncatingTail
mais pas les deux.Mais, pour répondre à votre question, vous pouvez trouver la taille du texte en utilisant les extensions de la classe dans
NSString+UIKit
. Ayant trouvé la taille que vous pourriez mettre à jour le cadre de laUILabel
de façon appropriée.À l'aide de cette méthode:
Comment trouver UILabel du nombre de Lignes
Vous pouvez définir l'étiquette de la hauteur max, savoir quelle est la taille du texte dans l'étiquette et la réduire si nécessaire.
J'ai écrit une catégorie pour travailler avec UILabel de troncature. Fonctionne sur iOS 7 et versions ultérieures. Espérons que cela aide !
Je suis venu juste pour un problème similaire, et résolu avec une solution très simple (testé sur ios 8.4, xcode, 7).
De l'IB (j'utilise la mise en forme automatique avec certaines contraintes):
Dans Le Code:
Tadaa. C'est tout. Notez que cette travaillons uniquement avec des UILabel. Avec UIButton, il peut ne pas fonctionner (ne l'ai pas testé).