Pergunta

Como alterar a cor de fundo de uma vista dinamicamente? Defino um cronômetro e atribuo a propriedade de cor de fundo da vista para mudar em um loop?

Como alcançar essa funcionalidade?

Foi útil?

Solução

Em algum lugar do seu código (ViewDidappear é um bom local)

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

Um método em sua classe:

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

    if (iWantToCancelTimer) {
        [timer invalidate];
    }

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

Isso será uma mudança abrupta, então você provavelmente desejará fazer uma animação, mas essa é uma pergunta diferente.

Outras dicas

Parece que você só deseja que sua visão mude as cores de fundo a cada tempo X. Para isso, sim, para a visualização em questão, você pode definir um cronômetro e alterar o plano de fundo sempre que disparar (talvez você possa gerar aleatoriamente alguns valores de RGB).

Você pode usar + (nstimer *) agendadoTimerWithTimeInterval: (NSTIMEINTVAL) Target: (ID) Seletor de destino: (Sel) Aselector UserInfo: (id) UserInfo Repeats: (bool) Repete para definir um cronômetro para um seletor e lá você pode Altere o fundo da visualização ... lembre -se de que o UIKIT não é thread s AFE, por isso

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top