2014-10-12 10 views
5

Mam UILabel, którego używam do wyświetlania wielu wierszy tekstu. W momencie wyświetlania tekstu znajduje się on po lewej stronie etykiety, która nie wygląda zbyt dobrze. Chciałbym, aby tekst był nieco przesunięty od lewej strony.Tekst wstawiony w UILabel od lewej

To jest mój kod do tej pory:

 if notes.objectAtIndex(indexPath.row) as NSString == "" { 
      cell.notesLabel.text = "No notes to display." 
      cell.notesLabel.textAlignment = NSTextAlignment.Center 
     } else { 
      cell.notesLabel.textAlignment = NSTextAlignment.Left 
     } 

Szukałem na kilka przykładów Objective-C, ale nie mogłem ich do pracy, a ja nie sądzę, że były co szukałem .

Próbowałem również zrobić to samo z inną etykietą i w tym przypadku założyłem, że mogłem dodać "" na końcu łańcucha (ponieważ jest to etykieta z pojedynczą linią), aby przenieść go w z prawej strony, ale byłem zaskoczony widząc, że to nie działa?

Dzięki.

Odpowiedz

11

Aby wstawka tekst od lewej krawędzi, należy utworzyć podklasę UILabel i zastąpić drawTextInRect :,

class RDLabel: UILabel { 

    override func drawTextInRect(rect: CGRect) { 
     let newRect = CGRectOffset(rect, 10, 0) // move text 10 points to the right 
     super.drawTextInRect(newRect) 
    } 
} 
+0

Niestety, co muszę zrobić, aby rzeczywiście zastosować to do pola tekstowego? Ledwie pracowałem z zajęciami do tego momentu. – user3746428

+0

@ user3746428, tworzysz nową klasę z kodem, który mam powyżej, następnie w IB zmień klasę twojej etykiety do twojej klasy niestandardowej (RDLabel w moim przykładzie). – rdelmar

+0

Świetnie! Wielkie dzięki. – user3746428