Swift 单击时如何切换按钮图像?
我想在单击时将播放按钮更改为暂停按钮。反之亦然 这是我的密码: var-toggleState=1Swift 单击时如何切换按钮图像?,swift,Swift,我想在单击时将播放按钮更改为暂停按钮。反之亦然 这是我的密码: var-toggleState=1 @IBAction func playPauseButton(sender: AnyObject) { var playBut = UIButton() if toggleState == 1 { player.play() toggleState = 2 } else { player.pause()
@IBAction func playPauseButton(sender: AnyObject) {
var playBut = UIButton()
if toggleState == 1 {
player.play()
toggleState = 2
} else {
player.pause()
toggleState = 1
}
}
我尝试过(但没有成功)添加:
当我点击play时,我的应用程序崩溃了。谁能帮帮我吗?你尝试的逻辑应该是有效的。唯一可疑的是强制转换,但Swift允许您通过声明确切类型的sender参数来消除它:
let imgPlay = UIImage(named:"play.png")
let imgPause = UIImage(named:"pause.png")
@IBAction func playPauseButton(playBtn: UIButton) {
if toggleState == 1 {
player.play()
toggleState = 2
playBtn.setImage(imgPlay,forState:UIControlState.Normal)
} else {
player.pause()
toggleState = 1
playBtn.setImage(imgPause,forState:UIControlState.Normal)
}
}
我还将图像创建从处理程序中移出,以避免重复执行相同的任务。它仍在崩溃。我在类AppDelegate上得到SIGABRT:UIResponder,UIApplicationLegate{@BenKelsey如果从两个分支删除
setImage
调用,它会停止崩溃吗?如果你是说在.setImage之后删除两行上的所有内容,那么是的,它会停止崩溃。@BenKelsey这很奇怪……你能设置一个断点,看看imgPlay
和imgPause
是否都是非零吗?很抱歉,我刚刚开始大约两周前我开始编程,但我还不知道如何使用断点。我只是在谷歌上搜索了一下,所以我知道断点的作用和设置方法,但我不知道如何使用断点检查非nils.If player.playing{…}
let imgPlay = UIImage(named:"play.png")
let imgPause = UIImage(named:"pause.png")
@IBAction func playPauseButton(playBtn: UIButton) {
if toggleState == 1 {
player.play()
toggleState = 2
playBtn.setImage(imgPlay,forState:UIControlState.Normal)
} else {
player.pause()
toggleState = 1
playBtn.setImage(imgPause,forState:UIControlState.Normal)
}
}