我已经看到,这是一个常见问题,但我自己找不到任何解决方案。
这是代码:
class ButtonViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
view.addSubview(button)
}
func exmp(sender: UIButton) {
print("hello world")
}
let button: UIButton = {
let but = UIButton(frame: CGRect(x: 33, y: 33, width: 33, height: 33))
but.setTitle("-", for: .normal)
but.titleLabel?.textColor = UIColor.white
but.layer.cornerRadius = 10
but.backgroundColor = UIColor.red
but.addTarget(ButtonViewController.self, action: #selector(ButtonViewController.exmp(sender:)), for: .touchDown)
return but
}
}
Issue:出现红色按钮,但是当我单击它时,我收到“无法识别的选择器发送到班级”错误。
任何帮助表示赞赏!谢谢。
你正在得到无法识别的选择器发送到类因为你设定了错误的目标。
目标应该是self
并不是ButtonViewController.self
:
but.addTarget(self, action: #selector(ButtonViewController.exmp(sender:)), for: .touchDown)
Your #selector
有效,但对于 Swift 3,您应该将操作编写为func exmp(_ sender: UIButton) {
制作选择器#selector(exmp(_:))
。注意:无论你是否重写exmp
,您可以将选择器简化为#selector(exmp)
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)