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()
}
Verwirrt: Sie erwarten 'touchesBegan()' aufgerufen werden, wenn Sie die Farbe ändern? –
keine Berührungen, ist eine andere Funktion, aber aus irgendeinem Grund, Berührungen begann nicht funktioniert, wenn ich scheduleBackgroundColor() aufrufen in viewdidload – Useruuu