2017-07-27 3 views
0

Ich habe ein UILabel, den Text wieEntfernen Sie einen Teil von AttributedText in UILabel

gesetzt zugeschrieben hat

Guten Morgen \ n Alex

Es zeigt, wie zwei Linien in UILabel. Ich möchte das zeigen und nach ein paar Sekunden den Guten Morgen Teil entfernen und einfach den Alex Part zeigen.

Ist das möglich? Bitte helfen Sie mir

Antwort

0

Sie eine NSTimer erstellen können - Documentation für die Anzahl der Sekunden und nach, dass Timer Brände, würden Sie einfach den Text der UILabel

textLabel.attributedText = "Alex"

innerhalb des Blocks von der Fertigstellung ändern NSTimer

0

könnten Sie verwenden GCD

let delayInSeconds = 4.0 
DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + delayInSeconds) { 

    textLabel.attributedText = "Alex" 


} 
0

Mit dieser Funktion und Ihre Verzögerung passieren und aktualisieren Sie den Text zugeschrieben: -

func delay(_ delay: Double, closure: @escaping() -> Void) { 
     DispatchQueue.main.asyncAfter(
      deadline: DispatchTime.now() + Double(Int64(delay * Double(NSEC_PER_SEC)))/Double(NSEC_PER_SEC), execute: closure) 
    } 

func updateAttributedText() { 
    delay(1) { 
    self.textLabel.attributedText = NSAttributed(string: "Alex") 
    } 
} 
+0

'self.textLabel.attributedText =„Alex“' Diese Zeile sollte mindestens eine Warnung (wenn kein Absturz), weil Sie zeigen ordnen einen String zu, dem Sie einen NSAttributedString zuweisen sollten. – Larme

+0

@Lame, Das ist wahr, also korrigiert Danke –

Verwandte Themen