iOS Etiquette de taille automatique pour adapter le texte


Exemple

Cet exemple montre comment la largeur d'une étiquette peut être redimensionnée automatiquement lorsque le contenu du texte change.

gif animé d'étiquette redimensionnée automatiquement

Pin les bords gauche et supérieur

Utilisez simplement la mise en page automatique pour ajouter des contraintes à épingler les côtés gauche et supérieur de l'étiquette.

capture d'écran: configure les contraintes de mise en page automatique

Après cela, il sera automatiquement redimensionné.

Remarques

  • Cet exemple provient de cette réponse Stack Overflow .

  • N'ajoutez pas de contraintes pour la largeur et la hauteur. Les étiquettes ont une taille intrinsèque basée sur leur contenu textuel.

  • Pas besoin de définir sizeToFit lors de l'utilisation de la mise en page automatique. Le code complet pour l'exemple de projet est ici:

      import UIKit
      class ViewController: UIViewController {
      
          @IBOutlet weak var myLabel: UILabel!
      
          @IBAction func changeTextButtonTapped(sender: UIButton) {
              myLabel.text = "my name is really long i want it to fit in this box"
          }
      }
    
  • Cette méthode peut également être utilisée pour espacer correctement plusieurs étiquettes horizontalement, comme dans cet exemple .

gif animé montrant le redimensionnement automatique de plusieurs étiquettes

  • Si vous souhaitez que votre étiquette soit alignée, définissez le nombre de lignes sur 0 dans IB et ajoutez myLabel.preferredMaxLayoutWidth = 150 // or whatever dans le code. (Le bouton est également épinglé au bas de l’étiquette pour qu’il se déplace vers le bas lorsque la hauteur de l’étiquette augmente.)

capture d'écran: redimensionnement sur plusieurs lignes