在我的应用程序中的某个时刻,我有一个突出显示的 UIButton
(例如,当用户将手指放在按钮上时)并且我需要在按钮突出显示时更改背景颜色(所以当用户的手指仍在按钮上)。
我尝试了以下方法:
_button.backgroundColor = [UIColor redColor];
但它不起作用。颜色保持不变。当按钮未突出显示并且工作正常时,我尝试了相同的代码。我也试过在改变颜色后调用-setNeedsDisplay
,没有任何效果。
如何强制按钮改变背景颜色?
最佳答案
您可以覆盖 UIButton
的 setHighlighted
方法。
Objective-C
- (void)setHighlighted:(BOOL)highlighted {
[super setHighlighted:highlighted];
if (highlighted) {
self.backgroundColor = UIColorFromRGB(0x387038);
} else {
self.backgroundColor = UIColorFromRGB(0x5bb75b);
}
}
Swift 3.0 和 Swift 4.1
override open var isHighlighted: Bool {
didSet {
backgroundColor = isHighlighted ? UIColor.black : UIColor.white
}
}
https://stackoverflow.com/questions/14523348/
相关文章:
ios - 设置自定义 UITableViewCells 高度
ios - 在 Swift 中使用 UI_USER_INTERFACE_IDIOM() 检测当前设备
ios - 您可以将 UIGestureRecognizer 附加到多个 View 吗?
ios - 查看保存的 NSUserDefaults 的简单方法?
objective-c - 在 Storyboard中,如何制作用于多个 Controller 的自
objective-c - 有没有办法从 UITableView 中删除分隔线?