Pergunta

Eu gostaria de "pulso" a cor do traço em um caminho que eu desenhei em drawRect do UIView. Mas não tenho certeza que isso é possível?

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

Eu só sou capaz de ver a mudança se eu setNeedsDisplay na vista. Mas isso ignora a animação. Eu posso pensar em algumas soluções alternativas, se isso não for possível, como sobreposição de outro ponto de vista semi-transparente com a cor adequada e apenas desvanecer-lo em ... mas por alguma razão eu pensei animar propriedades de cor foi possível em Cocoa?!? Talvez eu esteja enganado. Esperemos que um de vocês pode me definir reta.

Foi útil?

Solução

Você absolutamente pode animar propriedades de cor com UIView, mas não faz muito sentido no contexto você está lidando com agora.

Em drawRect: você são essencialmente pintura a cor quando você traçar um demarcador, esses bits apenas se blitted para a tela. Nesse ponto, a cor não é realmente uma propriedade do vista tanto como parte da pintura.

Eu escrevi um UIView que pulsava neste verão (emulando o "No Call" barra de status) através da criação de duas UIViews empilhar em cima uns dos outros, e animação tanto de suas propriedades color.

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