Question

Comment changer la couleur d'arrière-plan d'une vue dynamique? Est-ce que je régler une minuterie et d'attribuer la propriété de couleur d'arrière-plan en vue de changer dans une boucle?

Comment obtenir cette fonctionnalité?

Était-ce utile?

La solution

Quelque part dans votre code (viewDidAppear est un bon endroit)

NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:5 // seconds
                                                  target:self
                                                selector:@selector(changeBackground:)
                                                userInfo:nil
                                                 repeats:YES];

Une méthode dans votre classe:

- (void)changeBackground:(NSTimer *)timer {

    if (iWantToCancelTimer) {
        [timer invalidate];
    }

    self.view.backgroundColor = [UIColor whateverColor];
}

Ce sera un changement brusque de sorte que vous aurez probablement envie de faire une animation, mais cela est une autre question.

Autres conseils

On dirait que vous voulez juste changer votre point de vue de couleurs de fond chaque quantité x de temps. Pour cela, oui pour la vue en question, vous pouvez régler une minuterie et changer l'arrière-plan c olor chaque fois qu'il se déclenche (vous pouvez peut-être générer au hasard des valeurs RVB).

Vous pouvez utiliser + (NSTimer *) scheduledTimerWithTimeInterval: (NSTimeInterval) seconde cible: (id) sélecteur de cible: (SEL) aSelector userInfo: (id) userInfo répète: (booléen) se répète pour que la minuterie à un sélecteur et là, vous pouvez changer l'arrière-plan de vue ... garder à l'esprit que le UIKit afe isnt fil de donc si vous avez la minuterie en cours d'exécution dans un autre thread, vous devez changer l'arrière-plan des vues sur le thread principal ..

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top