Como alterar a cor de fundo de qualquer vista dinamicamente?
-
21-09-2019 - |
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?
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