Wie ändere ich die Hintergrundfarbe einer Ansicht dynamisch?
-
21-09-2019 - |
Frage
Wie ändere ich die Hintergrundfarbe einer Ansicht dynamisch? Setze ich einen Timer ein und weise die Hintergrundfarbe der Eigenschaft der Ansicht zu, um sich in einer Schleife zu ändern?
Wie kann man diese Funktionalität erreichen?
Lösung
Irgendwo in Ihrem Code (ViewDidAppear ist ein guter Ort)
NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:5 // seconds
target:self
selector:@selector(changeBackground:)
userInfo:nil
repeats:YES];
Eine Methode in Ihrer Klasse:
- (void)changeBackground:(NSTimer *)timer {
if (iWantToCancelTimer) {
[timer invalidate];
}
self.view.backgroundColor = [UIColor whateverColor];
}
Dies wird eine abrupte Veränderung sein, also möchten Sie wahrscheinlich eine Animation vornehmen, aber dies ist eine andere Frage.
Andere Tipps
Klingt so, als ob Sie nur möchten, dass Ihre Ansicht die Hintergrundfarben jede x -Menge Zeit ändern kann. Dazu können Sie für die betreffende Ansicht einen Timer einstellen und den Hintergrund für jedes Mal ändern (Sie können möglicherweise zufällig einige RGB -Werte generieren).
Sie können + (nstimer *) afulledTimerWithTimeInterval: (nstimeInterval) Sekunden Ziel: (ID) Zielwähler: (SEL) Asselektor UserInfo: (id) userInfo Wiederholungen: (bool) Wiederholungen, um einen Timer auf einen Selektor festzulegen, und dort können Sie es dort können Ändern Sie den Hintergrund der Ansicht ... Beachten Sie, dass UIKIT nicht mit Thread s afe ist. Wenn Sie also den Timer in einem anderen Thread laufen lassen, sollten Sie den Ansichtenhintergrund im Haupt -Thread ändern.