CXYVIP官网源码交易平台_网站源码_商城源码_小程序源码平台-丞旭猿论坛
CXYVIP官网源码交易平台_网站源码_商城源码_小程序源码平台-丞旭猿论坛
CXYVIP官网源码交易平台_网站源码_商城源码_小程序源码平台-丞旭猿论坛

Swift-技巧(六)设置按钮状态并更改-源码交易平台丞旭猿

摘要

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

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

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

设置完按钮控件后,剩下的处理就是在需要显示不同的状态的地方设置它的状态,刚好按钮有state属性,那么当欢欣鼓舞的设置btn.state = .disabled时,就一脸懵:

报的编译错误:说state属性只可以读,不可以写,不死心的我追进去看一下源码:

varstate: UIControl.State {get}

到这里彻底懵了,我要更改按钮状态为.disabled还不行了?

凡事就怕联想啊,我突然想到之前设置 按钮的状态为.selected之后,就通过更改.isSelectedtrue或者false来达到按钮更改状态效果,那就联想一下看,有没有.disabled

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

原来,竟然,出我意料。竟然用isEnabled来更改状态。既然到这个地方,那就顺手把按钮的状态和更改给总结一下:

UIControl.state

How change?

状态解释

normal

以下属性Bool值为都false

默认状态,启用但是没有被选中或者被高亮状态

highlighted

isHighlighted

高亮

disabled

isEnabled

禁用

selected

isSelected

选中

focused

未知

聚焦

application

未知

控件的附加应用标识

reserved

未知

框架内部预留标识

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

题外话

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

声明:本文部分素材转载自互联网,如有侵权立即删除 。

© 版权声明
THE END
喜欢就支持一下吧
点赞0赞赏 分享
相关推荐
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容