Ho un UIView con un numero di subviews e un gesto Tap riconosciuto associato e voglio imitarlo con un effetto 'tocco'. Cioè, quando si verifica il rubinetto, voglio mostrare la vista del contenitore per avere un colore di sfondo diverso e anche il testo di qualsiasi sottoview UILabels per sembrare evidenziato.Evidenziazione di un UIView simile a UIButton
Quando ricevo l'evento rubinetto da UITapGestureRecognizer, posso cambiare il colore di sfondo più che bene e anche impostare l'UILabel a [label setHighlighted:YES];
Per vari motivi, non posso cambiare l'UIView a UIControl.
Ma se aggiungo un UIViewAnimation per annullare l'evidenziazione, non succede nulla. Eventuali suggerimenti?
- (void)handleTapGesture:(UITapGestureRecognizer *)tapGesture {
[label setHighlighted:YES]; // change the label highlight property
[UIView animateWithDuration:0.20
delay:0.0
options:UIViewAnimationOptionCurveEaseIn
animations:^{
[containerView setBackgroundColor:originalBgColor];
[label setHighlighted:NO]; // Problem: don't see the highlight reverted
} completion:^(BOOL finished) {
// nothing to handle here
}];
}
Perché non solo lo rendono un 'UIButton'? –
Perché non è un codebase che possiedo e ci sono altre dipendenze quindi devo lasciarlo come UIView. –
Dai un'occhiata a questa libreria: https://github.com/mta452/UIView-TouchHighlighting –