Tôi có một UIView với một số phụ đề và một cử chỉ Nhấn được công nhận liên quan và tôi muốn bắt chước nó có hiệu ứng 'chạm'. Tức là, khi chạm vào xảy ra, tôi muốn hiển thị chế độ xem vùng chứa để có màu nền khác nhau và văn bản của bất kỳ chế độ xem con UILabels nào cũng được đánh dấu.Làm nổi bật một UIView tương tự như UIButton
Khi tôi nhận được sự kiện tap từ UITapGestureRecognizer, tôi có thể thay đổi màu nền tốt và thậm chí thiết lập UILabel để [label setHighlighted:YES];
Vì những lý do khác nhau, tôi không thể thay đổi UIView để UIControl.
Nhưng nếu tôi thêm một số UIViewAnimation để hoàn nguyên đánh dấu, không có gì xảy ra. Bất kỳ đề xuất?
- (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
}];
}
Tại sao không chỉ làm cho nó một 'UIButton'? –
Bởi vì nó không phải là một codebase tôi sở hữu và có phụ thuộc khác vì vậy tôi phải rời khỏi nó như là UIView. –
Hãy xem thư viện này: https://github.com/mta452/UIView-TouchHighlighting –