使用UIButton作为开关
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用UIButton作为开关相关的知识,希望对你有一定的参考价值。
我试图使用UIButton作为开关。点击按钮时,按钮图像应更改为(atcs.png),状态应为(.selected)。再次点击图像时,按钮图像应再次(actns.png),状态应为(.normal)。
以下是我当前代码的示例:
@IBOutlet weak var atcBtn: UIButton!
@IBAction func atcTapped(_ sender: UIButton) {
if atcBtn.isSelected {
atcBtn.setImage(UIImage(named: "atcs.png"), for:.selected)
} else {
atcBtn.setImage(UIImage(named: "atcns.png"), for:.normal)
}
}
这种方式不起作用。有什么遗漏?试过这里列出的几乎所有解决方案,但没有。
答案
首先,将你的setImage
代码移动到viewDidLoad
。没有理由重复设置这些图像:
atcBtn.setImage(UIImage(named: "atcs.png"), for:.selected)
atcBtn.setImage(UIImage(named: "atcns.png"), for:.normal)
接下来,在点击按钮时切换isSelected
属性:
@IBAction func atcTapped(_ sender: UIButton) {
sender.isSelected = !sender.isSelected
}
另外值得注意的是 - 使用sender
而不是硬编码atcBtn
。
以上是关于使用UIButton作为开关的主要内容,如果未能解决你的问题,请参考以下文章
Android:BottomNavigationView第一个片段开关超级延迟
我们在swiftui中作为 UIButton(Sender: UIButton) 有啥? [关闭]