通过单击更改 UIButton 的图像 - Swift
Changing image of UIButton via click - Swift
我收到此代码的错误..
它应该做什么:当用户点击按钮时,图像变为已选中,再次点击,变为未选中。
我收到错误: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)
}
}
您必须明确告诉您的 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)
}
}
}
你可以这样做:
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
}
}
你只需要把(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)
}
}
我收到此代码的错误.. 它应该做什么:当用户点击按钮时,图像变为已选中,再次点击,变为未选中。
我收到错误: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)
}
}
您必须明确告诉您的 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)
}
}
}
你可以这样做:
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
}
}
你只需要把(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)
}
}