Wyśrodkuj tekst w UILabel

81

Jak wyśrodkować tekst wewnątrz UILabel?

Chris
źródło

Odpowiedzi:

197

Kod jest

[yourLabel setTextAlignment:UITextAlignmentCenter];

lub (oczywiście) Dot-Syntax Obj-C 2.0

yourLabel.textAlignment = UITextAlignmentCenter;

W przypadku iOS 6 (i nowszych) NSTextAlignmentCenterzamiast UITextAlignmentCenter:

yourLabel.textAlignment = NSTextAlignmentCenter;

Źródło

A jeśli chcesz kompatybilności wstecznej z iOS 5, możesz to zrobić,

#ifdef __IPHONE_6_0
# define ALIGN_CENTER NSTextAlignmentCenter
#else
# define ALIGN_CENTER UITextAlignmentCenter
#endif

Szybki 3

yourLabel.textAlignment = .center
Henrik P. Hessel
źródło
2
Lub z trochę mniejszą zupą z nawiasami: yourLabel.textAlignment = UITextAlignmentCenter;
Peter DeWeese
11
UITextAlignmentCenter jest przestarzałe po iOS 6,0. Teraz użyj NSTextAlignmentCenter.
Dev2rights
3
Zauważ również, że jeśli wywołasz [yourLabel sizeToFit] po ustawieniu textAlignment, skończy się to na wyrównaniu do lewej i zignorowaniu właściwości textAlignment.
DiscDev
26

Jest to teraz amortyzowane w iOS6.

Powinieneś użyć:

yourLabel.textAlignment = NSTextAlignmentCenter;
R2D2
źródło
6

Oprócz używania kodu, jak zasugerował Henrik, możesz także ustawić odpowiednią właściwość w Interface Builder.

Pablo Santa Cruz
źródło
1

Jeśli masz wielowierszowy UILabel, powinieneś użyć NSMutableParagraphStyle

   label.numberOfLines = 0
   let paragraphStyle = NSMutableParagraphStyle()
   paragraphStyle.alignment = .Center

   let attributes : [String : AnyObject] = [NSFontAttributeName : UIFont(name: "HelveticaNeue", size: 15)!, NSParagraphStyleAttributeName: paragraphStyle]

   let attributedText = NSAttributedString.init(string: subTitleText, attributes: attributes)
   label.attributedText = attributedText
apinho
źródło
0

Wypróbuj ten kod:

labelName.textAlignment = UITextAlignmentCenter
Ayush Goel
źródło
0

UITextAlignmentCenter jest przestarzałe, ponieważ NSTextAlignmentCenter od iOS 6,0. Zamiast tego powinieneś użyć NSTextAlignmentCenter:

[label setTextAlignment:NSTextAlignmentCenter];
Luciano Rodríguez
źródło
0

Wypróbuj następujący kod:

lblObject.textAlignment=UITextAlignmentCenter;

Mam nadzieję, że to ci pomoże.

Ankit Gupta
źródło
0

Od Xcode 10.2.1 użyj:

UIlabel.textAlignment = NSTextAlignment.center
M Waz
źródło