Swift 设置UIButton选中状态(UIControlState.selected)且高亮(UIControlState.highlighted)时的图片
需求
设计师给了四类图片, 普通状态显示加号(+)图片, 按下时显示加号高亮图片, 选中时显示减号(-)图片, 选中按下时显示减号高亮图片.
- 普通状态
- 高亮状态
- 选中状态
- 选中-高亮状态
使用UIButton
实现上述效果
代码大致如下:
button.setImage(UIImage(named: "normal"), for: .normal)
button.setImage(UIImage(named: "selected_normal"), for: .selected)
button.setImage(UIImage(named: "highlighted"), for: .highlighted)
button .addTarget(self, action: #selector(buttonAction(sender:)), for: .touchUpInside)
@objc fileprivate func buttonAction(sender: UIButton) {
sender.isSelected = !sender.isSelected
}
问题
加号状态按下时, 可正常显示加号高亮图片; 当减号状态按下时显示系统灰色的高亮加号图片
解决
设置选中且高亮状态时的图片
button.setImage(UIImage(named: "selected_highlighted"), for: UIControlState.selected.union(.highlighted))
效果如下: