iOS Dimensioni per adattarsi


Esempio

Supponiamo che tu abbia un UILabel sullo storyboard e che tu abbia creato un IBOutlet per esso in ViewController.swift / ViewController.m e lo labelOne .

Per rendere le modifiche facilmente visibili, cambia il backgroundColor e textColor di labelOne nel metodo viewDidLoad :

La funzione sizeToFit viene utilizzata quando si desidera ridimensionare automaticamente un'etichetta in base al contenuto memorizzato al suo interno.

veloce

labelOne.backgroundColor = UIColor.blueColor()
labelOne.textColor = UIColor.whiteColor()
labelOne.text = "Hello, World!"
labelOne.sizeToFit()

Swift 3

labelOne.backgroundColor = UIColor.blue
labelOne.textColor = UIColor.white
labelOne.text = "Hello, World!"
labelOne.sizeToFit()

Objective-C

labelOne.backgroundColor = [UIColor blueColor];
labelOne.textColor = [UIColor whiteColor];
labelOne.text = @"Hello, World!";
[labelOne sizeToFit];

L'output per il codice sopra riportato è:

inserisci la descrizione dell'immagine qui

Come puoi vedere, non vi è alcun cambiamento in quanto il testo si adatta perfettamente a labelOne. sizeToFit cambia solo la cornice dell'etichetta.

Cambiamo il testo in uno leggermente più lungo:

labelOne.text = "Hello, World! I’m glad to be alive!"

Ora, labelOne si presenta così:

inserisci la descrizione dell'immagine qui

Anche chiamare sizeToFit non cambia nulla. Questo perché, per impostazione predefinita, il numero di linee mostrato da UILabel è impostato su 1. Passiamo a zero sullo storyboard:

inserisci la descrizione dell'immagine qui

Questa volta, quando eseguiamo l'app, labelOne appare correttamente:

inserisci la descrizione dell'immagine qui

La proprietà numberOfLines può anche essere modificata nel file ViewController :

// Objective-C
labelOne.numberOfLines = 0; 

// Swift
labelOne.numberOfLines = 0