2017-12-17 7 views
0

Ich habe eine Ansicht und ich möchte seine Hintergrundfarbe alle paar Sekunden ändern. Wenn ich die Funktion anrufe, werden die Berührungen nicht aufgerufen, aber die Hintergrundfarbe ändert sich alle paar Sekunden. Wenn ich die Zeile entferne, um die Hintergrundfarbe alle paar Sekunden zu ändern, ist alles in Ordnung, hier ist mein Code. Jede Hilfe zu diesem Problem wird geschätzt. Ich habe alles ausprobiert, angefangen von der Erstellung einer neuen Sicht bis hin zur Aufzählung von dieser Sichtweise zu Gott weiß was. Bitte helfen SieTouches begann nicht aufgerufen werden

var colors2 : [UIColor] = [.red,.orange,.yellow,.blue,.purple] 
var colorCounter : Int = 0 

override func viewDidLoad() { 
    super.viewDidLoad() 

    scheduleBackgroundColor() 
} 

    override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) { 
    print("hellonow") 

} 

func scheduleBackgroundColor() 
{ 
    let schedul = Timer.scheduledTimer(withTimeInterval: 2.0, repeats: true, block: { (timer) in 

     UIView.animate(withDuration: 2.0, animations: { 
      self.view.layer.backgroundColor = self.colors[self.colorCounter % 6].cgColor 
      if self.colorCounter > 3 
      { 
       self.colorCounter = 0 
      }else 
      { 
       self.colorCounter += 1 
      } 

     }) 
    }) 
    schedul.fire() 
} 
+0

Verwirrt: Sie erwarten 'touchesBegan()' aufgerufen werden, wenn Sie die Farbe ändern? –

+0

keine Berührungen, ist eine andere Funktion, aber aus irgendeinem Grund, Berührungen begann nicht funktioniert, wenn ich scheduleBackgroundColor() aufrufen in viewdidload – Useruuu

Antwort

0

Sie müssen Benutzerinteraktion während der Animation zulassen.

UIView.animate(
    withDuration: 2.0, 
    delay: 0.0, 
    options: [.allowUserInteraction], 
    animations: { 
     //Your code 
    } 
) 
+0

wo gebe ich diesen Code, im irgendwie verwirrt – Useruuu

+0

Sie müssen nur hinzufügen 'Verzögerung: 0.0, Optionen: [.allowUserInteraction], 'zu Ihrem' UIView.animate' in 'planedTimer' Block. – Fayer

Verwandte Themen