swift - 如何快速更改按钮颜色和背景颜色
问题描述
所以我想在点击按钮时更改文本和边框的颜色,并在未选择时将其更改回来
这是我的代码
@objc func button_Select(_ sender: UIButton) {
let button = sender
if button.isSelected == true {
button.backgroundColor = #colorLiteral(red: 1.0, green: 1.0, blue: 1.0, alpha: 1.0)
button.layer.cornerRadius = 10
button.layer.borderWidth = 1
button.layer.borderColor = #colorLiteral(red: 0.9424466491, green: 0.6981263757, blue: 0.6917206645, alpha: 1)
button.titleLabel?.textColor = #colorLiteral(red: 0.9424466491, green: 0.6981263757, blue: 0.6917206645, alpha: 1)
button.isSelected = false
} else {
button.backgroundColor = #colorLiteral(red: 1, green: 1, blue: 1, alpha: 1)
button.layer.cornerRadius = 10
button.layer.borderWidth = 1
button.layer.borderColor = #colorLiteral(red: 0.6666666667, green: 0.6666666667, blue: 0.6666666667, alpha: 1)
button.titleLabel?.textColor=#colorLiteral(red: 0.6666666667, green: 0.6666666667, blue: 0.6666666667, alpha: 1)
button.isSelected = true
}
}
但结果是当按钮被选中时,颜色不会变成粉红色,当按钮没有被选中时,按钮文本背景会变成灰色而不是白色/清晰的颜色
解决方案
Use the following code...it may help you
@objc func button_Select(_ sender: UIButton) {
sender.tintColor = UIColor.clear
if sender.isSelected == true {
sender.backgroundColor = #colorLiteral(red: 1.0, green: 1.0, blue: 1.0, alpha: 1.0)
sender.layer.cornerRadius = 10
sender.layer.borderWidth = 1
sender.layer.borderColor = #colorLiteral(red: 0.9424466491, green: 0.6981263757, blue: 0.6917206645, alpha: 1)
sender.setTitleColor(#colorLiteral(red: 0.9424466491, green: 0.6981263757, blue: 0.6917206645, alpha: 1), for: .normal)
sender.isSelected = false
} else {
sender.backgroundColor = #colorLiteral(red: 1, green: 1, blue: 1, alpha: 1)
sender.layer.cornerRadius = 10
sender.layer.borderWidth = 1
sender.layer.borderColor = #colorLiteral(red: 0.6666666667, green: 0.6666666667, blue: 0.6666666667, alpha: 1)
sender.setTitleColor(#colorLiteral(red: 0.6666666667, green: 0.6666666667, blue: 0.6666666667, alpha: 1), for: .normal)
sender.isSelected = true
}
}
推荐阅读
- android-studio - Android Studio 奇怪的字母
- vba - 有没有办法为 Word VBA 组合框文本条目的一部分添加粗体样式?
- asp.net - ASP 文本框标签字体颜色
- amazon-web-services - AWS/EKS:从 ALB 获取频繁的 504 网关超时错误
- android - 如何在 AccessibilityService 中跟踪长按键事件?
- mysql - 将 SQL 转换为 PostgreSQL
- powershell - SharePoint Get-PnPListItem -查询
- ngrx - 错误 TS2345:“对象”类型的参数不可分配给“用户”类型的参数。(NgRx)
- sql - 从另一个表更新 SQL - 大搞砸了
- php - 如何从laravel中的字符串中提取所有#Tags和用户标签?