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?

War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top