我试图在点击时更改按钮的图像(这是我希望播放更改为暂停的音频播放器)。到目前为止,我只是设置了按钮保持时更改它,然后它在发布时更改回来。
我尝试使用Selected而不是突出显示,但这不起作用。 (初始图像在“属性”检查器中设置)。这就是我所拥有的 -
@IBAction func buttonTapped(sender: AnyObject) {
ColourTestButton.setImage(UIImage(named: "blank-purple.jpg"), forState:.Highlighted)
}
我意识到突出显示意味着虽然在另一个我希望它改变回来的图像(在桌面视图的单元格中)它停留了,这就是为什么我认为它适用于这个。我该怎么做才能让它保持更改为新图像?
答案 0 :(得分:4)
我认为你需要这段代码:
@IBAction func buttonTapped(sender: AnyObject) {
let image = UIImage(named: "blank-purple.jpg") as UIImage!
let playButton = UIButton.buttonWithType(UIButtonType.Custom) as! UIButton
ColourTestButton.setImage(image, forState: .Normal)
}
<强>更新强>
如果您想更改播放/暂停等图像,则可以这样做:
var pressed = false
@IBAction func pressed(sender: AnyObject) {
if !pressed {
let image = UIImage(named: "pauseImage.png") as UIImage!
let playButton = UIButton.buttonWithType(UIButtonType.Custom) as! UIButton
btn.setImage(image, forState: .Normal)
pressed = true
} else {
let image = UIImage(named: "playImage.png") as UIImage!
let playButton = UIButton.buttonWithType(UIButtonType.Custom) as! UIButton
btn.setImage(image, forState: .Normal)
pressed = false
}
}
答案 1 :(得分:0)
我认为您仅在突出显示状态下更新图像,因此当您释放按钮时,它会返回到原始图像。尝试将其更改为“正常”状态,以便更改图像。拿一个标志来检查播放和暂停状态。
@IBAction func buttonTapped(sender: AnyObject) {
if (!flag)
{
//for Play
flag = true
ColourTestButton.setImage(UIImage(named:"USE PLAY IMAGE"), forState:. Normal)
}
else
{
//for Pause
flag = false
ColourTestButton.setImage(UIImage(named:"USE PAUSE IMAGE"), forState:. Normal)
}
}
答案 2 :(得分:-1)
虽然Dharmesh Kheni的答案还可以,但我建议使用两个按钮。您可以在单独的函数或界面构建器中设置它们,然后根据状态显示和隐藏它们。像这样:
func setButtons()
{
playBtn.setImage(UIImage(named: "play.png"), forState:.Normal)
pauseBtn.setImage(UIImage(named: "play.png"), forState:.Normal)
pauseBtn.hidden = true
}
@IBAction func playTapped(sender: AnyObject)
{
playBtn.hidden = true
pauseBtn.hidden = flase
//do other stuff
}
@IBAction func pauseTapped(sender: AnyObject)
{
playBtn.hidden = false
pauseBtn.hidden = true
//do other stuff
}