Mam UIView z wieloma subviewsami i rozpoznanym skojarzonym gestem Tap i chcę naśladować to działanie "dotykowe". Oznacza to, że gdy pojawia się dotknięcie, chcę pokazać widok kontenera, aby inny kolor tła i tekst wszystkich widoków podrzędnych UILabeli również wyglądał podświetlony.Wyróżnianie UIView podobnego do UIButton
Kiedy odebrać zdarzenie kranu z UITapGestureRecognizer mogę zmienić kolor tła w porządku, a nawet ustawić UILabel do [label setHighlighted:YES];
Z różnych powodów, nie mogę zmienić UIView do UIControl.
Ale jeśli dodaję UIViewAnimation, aby przywrócić wyróżnienie, nic się nie dzieje. Jakieś sugestie?
- (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
}];
}
Dlaczego nie po prostu zrobić to 'UIButton'? –
Ponieważ nie jest to mój kod bazowy i istnieją inne zależności, więc muszę zostawić to jako UIView. –
Spójrz na tę bibliotekę: https://github.com/mta452/UIView-TouchHighlighting –