作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个带有多个 subview 的 UIView 和一个可识别的关联点击手势,我想模仿它具有“触摸”效果。也就是说,当点击发生时,我想显示容器 View 具有不同的背景颜色,并且任何 subview UILabels 的文本也看起来突出显示。
当我收到来自 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
}];
}
最佳答案
setHighlighted 不是可动画化的 View 属性。另外,您说的是两个相反的事情:您同时将突出显示设置为"is"和“否”。结果将是什么也没有发生,因为没有整体变化。
使用完成处理程序或延迟性能来更改突出显示稍后。
编辑:
你说“两种都尝试了,但都不起作用。”也许您需要澄清我所说的延迟性能的含义。我刚刚尝试过,效果非常好:
- (void) tapped: (UIGestureRecognizer*) g {
label.highlighted = YES;
dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, 0.2 * NSEC_PER_SEC);
dispatch_after(popTime, dispatch_get_main_queue(), ^(void){
label.highlighted = NO;
});
}
标签必须具有与其 highlightedTextColor
不同的 textColor
,以便发生可见的情况。
关于ios - 突出显示类似于 UIButton 的 UIView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8747009/
有没有一种方法可以“标记”对象的属性,使它们在反射中“突出”? 例如: class A { int aa, b; string s1, s2; public int AA
我是一名优秀的程序员,十分优秀!