У меня есть UIView с несколькими подзонами и признаком привязки, признанным ассоциированным, и я хочу имитировать его с эффектом «касания». То есть, когда происходит кратковременное нажатие, я хочу показать, что контейнерный вид имеет другой цвет фона, а текст любых подтипов UILabels также выглядит выделенным.Выделение UIView аналогично UIButton
Когда я получаю событие водопроводного от UITapGestureRecognizer, я могу изменить цвет фона просто отлично и даже установить UILabel на [label setHighlighted:YES];
По разным причинам, я не могу изменить UIView к UIControl.
Но если я добавлю UIViewAnimation, чтобы вернуть выделение, ничего не произойдет. Какие-либо предложения?
- (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
}];
}
Почему бы не просто сделать его 'UIButton'? –
Потому что это не кодовая база, которой я владею, и есть другие зависимости, поэтому я должен оставить ее как UIView. –
Посмотрите на эту библиотеку: https://github.com/mta452/UIView-TouchHighlighting –