iOS Obtenir la taille de UILabel strictement basée sur son texte et sa police


Exemple

NSString fournit la méthode boundingRectWithSize qui peut être utilisée pour prédire la taille CGS résultante d'un UILabel fonction de son texte et de sa police sans qu'il soit nécessaire de créer un UILabel

Objectif c

[[text boundingRectWithSize:maxSize options:(NSStringDrawingTruncatesLastVisibleLine | NSStringDrawingUsesLineFragmentOrigin) attributes:@{NSFontAttributeName: fontName} context:nil] size];

Rapide

let nsText = text as NSString?
nsText?.boundingRectWithSize(maxSize, options: [.TruncatesLastVisibleLine, .UsesLineFragmentOrigin], attributes: [NSFontAttributeName: fontName], context: nil).size

Rapide

Créer une étiquette et une étiquette Ajoutez le code ci-dessous où vous allez assigner du texte à l'étiquette.

@IBOutlet var lblDescriptionHeightConstration: NSLayoutConstraint! 
@IBOutlet weak var lblDescription: UILabel!

let maxWidth = UIScreen.mainScreen().bounds.size.width - 40
let sizeOfLabel = self.lblDesc.sizeThatFits(CGSize(width: maxWidth, height: CGFloat.max))
self.lblDescriptionHeightConstration.constant = sizeOfLabel.height

Note: "40" est l'espace des côtés gauche et droit de l'écran.