2015-03-25 10 views
7

Próbuję ustawić tekst, aby dopasować rozmiar do UILabel, a także być wyśrodkowany. Robię to programowo. Jest to, jak wygląda obecnie:Ustawianie tekstu w celu dopasowania do rozmiaru UILabel i środka w SWIFT

enter image description here

Jak widać, tekst będzie poza ekran i nie jest również centrum.

To jest mój kod:

let questions = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec ac faucibus tellus." 

questionsLabel = UILabel(frame: CGRectMake(10, 10, questionsView.frame.size.width - 20, 80)) 
questionsLabel.text = questions 
questionsLabel.font = UIFont(name: Font.FuturaMedium, size: 25) 
questionsLabel.sizeToFit() 
questionsLabel.numberOfLines = 0 
questionsLabel.textAlignment = NSTextAlignment.Center 
questionsView.addSubview(questionsLabel) 

Co robię źle?

Odpowiedz

25
questionsLabel.sizeToFit() 

Sprawia, że ​​ramka pasuje do rozmiaru tekstu. To, czego szukasz, to:

questionsLabel.adjustsFontSizeToFitWidth = true 

Zmienia rozmiar czcionki, aby dopasować ją do szerokości etykiety. (Należy jednak pamiętać, że spowoduje to jedynie zmniejszenie rozmiaru czcionki).

questionsLabel.textAlignment = NSTextAlignment.Center 

Centruje tekst w etykiecie. Więc jeśli to zrobisz. Upewnij się, że etykieta jest wyśrodkowana, a jej szerokość jest poprawna. Nie musisz robić nic więcej, aby wyśrodkować tekst.

Swift 3:

questionsLabel.textAlignment = .center