Question

Je voudrais "pulser" la couleur de trait sur un chemin que j'ai dessiné dans drawRect d'un UIView. Mais pas sûr que c'est possible?

- (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;
    }
}

Je ne suis en mesure de voir le changement que si j'ai misNeedsDisplay sur la vue. Mais cela contourne l'animation. Je peux penser à quelques solutions de contournement si cela n’est pas possible, comme superposer une autre vue semi-transparente avec la couleur appropriée et l’effacer en fondu ... dans le cacao?!? Peut-être que je me trompe. J'espère que l'un de vous pourra me mettre au clair.

Était-ce utile?

La solution

Vous ne pouvez absolument animer les propriétés de couleur avec UIView, mais il ne fait pas vraiment de sens dans le contexte que vous avez affaire à ce moment.

Dans drawRect: , vous

peignez une couleur lorsque vous tracez un chemin, ces bits sont simplement affichés à l'écran. À ce moment-là, la couleur est pas vraiment une propriété de la vue tant dans le cadre de la peinture.

J'ai écrit un UIView qui pulsait cet été (en émulant la barre d'état "Dans l'appel") en créant deux piles UIViews superposées et en animant leurs deux propriétés couleur .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top