我的代码出错了.. 它应该做什么:当用户点击按钮时,图像变为已选中,再次点击,更改为未选中。
我得到错误:AnyObject没有成员名称'setImage ...
@IBAction func tick(sender: AnyObject) {
if let image = UIImage(named:"Unchecked") {
sender.setImage(UIImage(named:"Checked.png"), forControlState: .Normal)
}
if let image = UIImage(named:"Checked") {
sender.setImage( UIImage(named:"Unchecked.png"), forControlState: .Normal)
}
}
答案 0 :(得分:1)
您必须明确告诉compiler
sender
是UIButton
而不是AnyObject
类型。
@IBAction func tick(sender: AnyObject) {
if let button = sender as! UIbutton {
if let image = UIImage(named:"Unchecked") {
button.setImage(UIImage(named:"Checked.png"), forControlState: .Normal)
}
if let image = UIImage(named:"Checked") {
button.setImage( UIImage(named:"Unchecked.png"), forControlState: .Normal)
}
}
}
答案 1 :(得分:1)
您只需将(sender:AnyObject)更改为(sender:UIButton) 如下
@IBAction func tick(sender: UIButton) {
if let image = UIImage(named:"Unchecked") {
sender.setImage(UIImage(named:"Checked.png"), forControlState: .Normal)
}
if let image = UIImage(named:"Checked") {
sender.setImage( UIImage(named:"Unchecked.png"), forControlState: .Normal)
}
}
答案 2 :(得分:0)
你可以这样做:
var checked = false
@IBAction func tick(sender: UIButton) {
if checked {
sender.setImage( UIImage(named:"Unchecked.png"), forState: .Normal)
checked = false
} else {
sender.setImage(UIImage(named:"Checked.png"), forState: .Normal)
checked = true
}
}