禁用 UIButton 的突出显示 UIControl 状态
Posted
技术标签:
【中文标题】禁用 UIButton 的突出显示 UIControl 状态【英文标题】:Disable highlighted UIControl state of a UIButton 【发布时间】:2011-05-03 10:59:31 【问题描述】:我有一个UIButton
,如果按钮处于选中状态,我想禁用它的UIControlStateHighlighted
。我的意思是,如果UIButton
的当前状态是ControlStateSelected
,那么在触地时,它的状态不应更改为突出显示,这是UIButton
的默认行为。
【问题讨论】:
How to disable the highlight control state of a UIButton?的可能重复 【参考方案1】:[button setBackgroundImage:[UIImage imageNamed:@"button_image"]forState:UIControlStateNormal];
[button setBackgroundImage:[UIImage imageNamed:@"button_image_selected"] forState:UIControlStateSelected];
[button setBackgroundImage:[UIImage imageNamed:@"button_image_selected"] forState:UIControlStateSelected | UIControlStateHighlighted];
第三行是这里的技巧,如果按钮已经处于选中状态,它将禁用 UIButton 的突出显示状态
【讨论】:
如果您的目的是移除控件的高亮状态,而不仅仅是移除点击时的高亮效果,应该参考这个精彩的答案【参考方案2】:在 IB 中取消选中“突出显示调整图像”,同时确保在 IB 中将按钮类型设置为 CUSTOM
【讨论】:
【参考方案3】:if(button.selected == YES)
button.adjustsImageWhenHighlighted = NO;
else
button.adjustsImageWhenHighlighted = YES;
希望对你有帮助
【讨论】:
您好,感谢您的回复。但即使在设置 utton.adjustsImageWhenHighlighted = NO;高亮状态被唤起【参考方案4】:只有两件事:
UIButton *btnTransparentComponent = [UIButton buttonWithType:UIButtonTypeCustom];
btnTransparentComponent.adjustsImageWhenHighlighted = NO;
【讨论】:
以上是关于禁用 UIButton 的突出显示 UIControl 状态的主要内容,如果未能解决你的问题,请参考以下文章