您的位置:首页 > 移动开发 > Swift

Swift-技巧(六)设置按钮状态并更改

2021-11-18 20:44 47 查看 https://www.cnblogs.com/shsupe

摘要

按钮是一个宝藏控件,可以在设置的时候就对不同的状态添加图片、文本,甚至更改背景。在不同的展示场景中更改到不同的状态显示就好。恰恰是如何更改状态着实让我懵了一阵,所以记录一下过程。如果没有兴趣了解过程,可以直接滑到底部,截图表格收藏。

之前在处理一个按钮控件,按钮有可以点击和禁止点击两个不同的状态,因为这两种状态有不同的图标,所以就想用

setImage(, for: )
函数处理:

let btn = UIButton()
btn.setImage(UIImage(named: "pic1"), for: .normal)
btn.setImage(UIImage(named: "pic2"), for: .disabled)

设置完按钮控件后,剩下的处理就是在需要显示不同的状态的地方设置它的状态,刚好按钮有

state
属性,那么当欢欣鼓舞的设置
btn.state = .disabled
时,就一脸懵:

报的编译错误:说

state
属性只可以读,不可以写,不死心的我追进去看一下源码:

var state: UIControl.State { get }

到这里彻底懵了,我要更改按钮状态为

.disabled
还不行了?

凡事就怕联想啊,我突然想到之前设置 按钮的状态为

.selected
之后,就通过更改
.isSelected
true
或者
false
来达到按钮更改状态效果,那就联想一下看,有没有
.disabled

这.......总不能可以设置,不能更改吧,要是这样,开放这属性就是为了玩吗?不能死心,这条路走不通,换条路,看看

.disabled
的源码去。

原来,竟然,出我意料。竟然用

isEnabled
来更改状态。既然到这个地方,那就顺手把按钮的状态和更改给总结一下: |
UIControl.state
| How change? | 状态解释 | | ----------------- | ------------------------------ | ------------------------------------------ | |
normal
| 以下属性
Bool
值为都
false
| 默认状态,启用但是没有被选中或者被高亮状态 | |
highlighted
|
isHighlighted
| 高亮 | |
disabled
|
isEnabled
| 禁用 | |
selected
|
isSelected
| 选中 | |
focused
| 未知 | 聚焦 | |
application
| 未知 | 控件的附加应用标识 | |
reserved
| 未知 | 框架内部预留标识 |

至此,给按钮设置什么状态,怎么更改状态就直接参考上面的表吧。这些个未知情况,看后面有没有机缘发现了。

题外话

时间仓促,说的东西可能不全面,在你查看的过程中遇到什么问题,评论区给我留言,我会尽快回复

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐