2014-10-12 11 views
5

Ho un UILabel che sto usando per visualizzare più righe di testo. Nel momento in cui viene visualizzato il testo, è proprio contro il lato sinistro dell'etichetta che non sembra troppo grande. Vorrei che il testo fosse leggermente inserito da sinistra.Testo inserito in UILabel da sinistra

Questo è il mio codice finora:

 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 
     } 

stavo guardando alcuni esempi Objective-C, ma non ho potuto ottenere loro di lavorare e non so davvero che erano quello che cercavo .

Inoltre, stavo cercando di fare la stessa cosa con un'etichetta diversa e in questo caso ho pensato che avrei potuto aggiungere "" alla fine della stringa (dato che è un'etichetta singola riga) per spostarla in da destra, ma sono stato sorpreso di vedere che questo non funziona?

Grazie.

risposta

11

Per INSET il testo dal bordo sinistro, è necessario creare una sottoclasse UILabel, e sovrascrivere 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

Siamo spiacenti, cosa devo fare per applicare realmente questo al textField? Ho lavorato a malapena con le lezioni fino a questo punto. – user3746428

+0

@ user3746428, crei una nuova classe con il codice che ho sopra, poi in IB cambia la classe della tua etichetta nella tua classe personalizzata (RDLabel nel mio esempio). – rdelmar

+0

Ottimo! Molte grazie. – user3746428