ios - UIButton 高亮状态仅适用于 .normal -> .selected?
问题描述
使用 IB,我将图像分配给按钮的 .normal、.highlighted 和 .selected 状态。在 .normal->.selected 转换 ( someButton.isSelected = true
) 期间按下按钮时,.highlighted 图像在触摸时正确呈现,但是当设置someButton.isSelected = false
返回 .normal 时,我看到标准快速淡入淡出转换而不是我的 .highlighted 图像。我在2013 年的这篇 SO 帖子中看到了一个类似的问题,但是我想知道该解决方案是否仍然适用于 Swift 4,因为我不太了解它。我的目标是在每次按钮触摸时呈现“发光”图像。谢谢!
这是完整的代码:
@IBAction func someButtonArray(_ sender: UIButton) {
UIView.transition(with: sender, duration: 0.3, options: .transitionCrossDissolve, animations: {
sender.setImage(UIImage(named: "TRANSITION_Pad-10.png"), for: UIControl.State.highlighted)
}, completion: nil)
if sender.isSelected == true {
UIView.transition(with: sender, duration: 0.3, options: .transitionCrossDissolve, animations: {
sender.setImage(UIImage(named: "INITIAL_Pad-13.png"), for: UIControl.State.normal)
}, completion: nil)
sender.isSelected = false
} else if sender.isSelected != true {
sender.isSelected = true
for buttons in 0...11 where buttons != (sender.tag) {
someButtonArray[buttons].isSelected = false
}
}
tableView.reloadData()
}
解决方案
在视图中执行此操作确实加载
yourButtonObj.adjustsImageWhenHighlighted = true
推荐阅读
- acumatica - How can I invoke File Synchonization Action via code (SM202530)
- r - 数据处理脚本文档
- grafana-loki - 如何在 Promtail 中解析嵌套的 json
- sql - 选择具有不同起始位置的子字符串
- python - 每当我在 python (abjad for LilyPond) 中执行 abjad.show() 时都会出现错误
- r - 使用 RowSum 定义基于不同类别的阈值
- python - 用于多元时间序列的 Pytorch 自定义数据集类和数据加载器
- reactjs - Create-react-libary 编译到 /dist/src 而不是 /dist
- database - TDengine数据库时区设置相关问题
- java - HarmonyOS 中的 invalidateSelf(Android) 有什么替代方法吗?