Il fonctionne très bien pour le multi en ligne de cordes aussi.
Fondamentalement, de son une fonction qui vous permet de voir comment grand d'une chaîne va être lors du rendu avec une police et une rupture de ligne de mode.
- Je l'utiliser dans quelques endroits dans ma demande, lorsque j'ai de longueur variable texte que je veux afficher dans un certain domaine.
Par défaut, un UILabel permettra de centrer le texte verticalement. Pour avoir le texte en haut aligné vous avez besoin de la taille de l'étiquette de n'être que la hauteur requise par la chaîne qui est en elle.
J'utilise cette méthode pour ce faire.
Et l'exemple de comment je pourrais l'utiliser pour faire comme suit:
//Calculate the expected size based on the font and linebreak mode of your label
CGSize maximumLabelSize = CGSizeMake(296,9999);
CGSize expectedLabelSize = [yourString sizeWithFont:yourLabel.font
constrainedToSize:maximumLabelSize
lineBreakMode:yourLabel.lineBreakMode];
//adjust the label the the new height.
CGRect newFrame = yourLabel.frame;
newFrame.size.height = expectedLabelSize.height;
yourLabel.frame = newFrame;
Vous précisez la taille d'une région que vous avez à mettre le texte, puis cette méthode vous indique combien d'espace il va prendre (emballage, comme l'exige). Aussi, si la chaîne va déborder les limites de la rect vous fournir, vous pouvez dire et de décider comment pour afficher le texte.
La référence est-il réellement enveloppant le texte est là parce que cette méthode n'est pas réellement faire quelque chose pour le texte. Il vient pratiquement la pose et retourne quelle est la taille d'une zone dont il aurait besoin pour vraiment le mettre en page.
sa la responsabilité de l'étiquette (ou ce que jamais récipient que vous utilisez pour le texte) pour effectuer l'emballage/quoi d'autre qui doit être fait.
Espérons que cela aide.
chris.