Animare la modifica del colore di un tratto su UIView
-
06-07-2019 - |
Domanda
Vorrei " impulso " il colore del tratto su un tracciato che ho disegnato in drawRect di UIView. Ma non sei sicuro che sia possibile?
- (void)highlightView {
if (!isHighlighted) {
[UIView beginAnimations:NULL context:nil];
[UIView setAnimationDuration:0.75];
self.strokeColor = kHighlightColor;
self.strokeWidth = 2.0;
[UIView commitAnimations];
self.isHighlighted = YES;
}
}
Sono in grado di vedere la modifica solo se ho impostatoNeedsDisplay sulla vista. Ma questo ignora l'animazione. Posso pensare ad alcune soluzioni alternative se questo non è possibile come sovrapporre un'altra vista semitrasparente con il colore giusto e solo sfumarlo ... ma per qualche ragione ho pensato che l'animazione delle proprietà del colore fosse possibile in cacao?!? Forse mi sbaglio. Spero che uno di voi mi possa chiarire.
Soluzione
Puoi assolutamente animare le proprietà dei colori con UIView, ma non ha davvero senso nel contesto che stai affrontando in questo momento.
In drawRect:
stai essenzialmente dipingendo un colore quando traccia un tracciato, quei bit vengono semplicemente fatti saltare sullo schermo. A quel punto, il colore non è in realtà una proprietà della vista tanto quanto parte del dipinto.
Ho scritto un UIView che pulsava quest'estate (emulando la barra di stato "In Call") creando due UIVview sovrapposti e animando entrambe le proprietà color
.