Pregunta

Cómo cambiar el color de fondo de una vista de forma dinámica? Cómo puedo configurar un temporizador y asignar la propiedad de color de fondo de la vista para cambiar en un bucle?

¿Cómo lograr esta funcionalidad?

¿Fue útil?

Solución

En algún lugar de su código (viewDidAppear es un buen lugar)

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

Un método en su clase:

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

    if (iWantToCancelTimer) {
        [timer invalidate];
    }

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

Esto será un cambio brusco por lo que probablemente va a querer hacer una animación, pero esto es una cuestión diferente.

Otros consejos

Parece que usted simplemente quiere que su punto de vista para cambiar los colores de fondo cada x cantidad de tiempo. Por eso, sí para la vista en cuestión se puede establecer un temporizador y cambiar el olor cada vez que se dispara al fondo c (tal vez puede generar de forma aleatoria algunos valores RGB).

Puede utilizar + (NSTimer *) scheduledTimerWithTimeInterval: Selector de objetivo (id):: (NSTimeInterval) segundo objetivo (SEL) aSelector userInfo: (id) userInfo repite: (BOOL) se repite para establecer un temporizador para un selector y en allí se puede cambiar la vista del fondo ... tener en cuenta que UIKit AFE hilo isnt s así que si tienes el temporizador se ejecuta en otro hilo que debe cambiar el fondo puntos de vista sobre el hilo principal ..

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top