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.

È stato utile?

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 .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top