在过去的两个小时里,我一直在尝试修复一些相当容易的事情。我的viewcontroller上有6个按钮,我想在点击时更改图像。如果再次点击它们,图像应该变回原始图像(选择/取消选择的想法)。但是,我似乎无法弄清楚,每当我使用下面的代码时崩溃并说明:
CharacteristicsViewController buttonTapped:]:无法识别的选择器发送到实例0x12dd07390
有人可以向我解释一下如何在点击时更改按钮的图像吗?
PS:在下面的代码中我只连接了1个按钮来测试我是否可以使它工作。
import UIKit
class CharacteristicsViewController: UIViewController {
@IBOutlet weak var confidenceButton: UIButton!
override func viewDidLoad() {
super.viewDidLoad()
confidenceButton.setImage(UIImage(named: "confidentnor"), for: UIControlState.normal)
confidenceButton.setImage(UIImage(named: "confidenthigh"), for: UIControlState.selected)
confidenceButton.addTarget(self, action: Selector(("buttonTapped:")), for: UIControlEvents.touchUpInside)
}
func buttonTapped(sender:UIButton)
{
sender.isSelected = !sender.isSelected;
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
}
答案 0 :(得分:3)
你正在做的事情没问题,选择器设置正确。
错误是该按钮无法找到选择器在类中指示的方法,尤其是buttonTapped
方法。
问题是该方法嵌套在viewDidLoad中。将它移到课堂外,它应该可以工作!
尝试设置按钮目标,如下所示:
button.addTarget(self, action: #selector(testFunc), for: .touchUpInside)
}
func buttonTapped()
{
sender.isSelected = !sender.isSelected;
}