UIButton:为选中的高亮 UI 状态设置背景颜色(不是图像)
Posted
技术标签:
【中文标题】UIButton:为选中的高亮 UI 状态设置背景颜色(不是图像)【英文标题】:UIButton: set background color (NOT IMAGE) for selected-highlighted UI state 【发布时间】:2015-03-24 15:34:34 【问题描述】:我使用的是 Xcode 6.1.1
是否可以在代码中为 UIButton 的选定/突出显示状态设置背景颜色? - 不是背景图片!
我将 ID 用于链接到 json 文件(即 .plist 文件)的颜色(例如 @"theme.brand.primary")
我已经为setTitleColor UIControlStateHighlighted
完成了它,效果很好...示例代码:
[button setTitleColor:[config getColour:@"button.text.pressed-state"] forState:UIControlStateHighlighted];
但是我希望按钮的颜色改变而不是标题。
setBackgroundColor:forState:
没有选项???
有谁知道有没有简单的方法可以做到这一点?
【问题讨论】:
根据文档直接不可能。您需要使用setBackgroundImage:forState:
为每个状态设置一个UIImage
(特定颜色)。
您可以继承 UIButton 并覆盖 setHighlighted 方法。你可以关注这个帖子***.com/questions/20300766/…
【参考方案1】:
你不能只检查突出显示吗?
if (myButton.highlighted)
myButton setBackgroundColor.......
【讨论】:
【参考方案2】:我已经开源了一个类STAButton,来填补这个功能漏洞。在 MIT 许可下可用。适用于 ios 7+(我没有测试过旧的 iOS 版本)。
【讨论】:
以上是关于UIButton:为选中的高亮 UI 状态设置背景颜色(不是图像)的主要内容,如果未能解决你的问题,请参考以下文章