点击时如何将播放按钮更改为暂停按钮?

Posted

技术标签:

【中文标题】点击时如何将播放按钮更改为暂停按钮?【英文标题】:How do I change a play button to a pause button when tapped on? 【发布时间】:2015-04-08 02:15:46 【问题描述】:

点击时我需要将播放按钮更改为暂停按钮,反之亦然。我还是新手,所以我不知道如何识别.swift 文件中的按钮或如何以编程方式更改.swift 文件中的图标。

import UIKit
import AVFoundation

class ViewController: UIViewController 

    var player = AVAudioPlayer()

    var toggleState = 1

    @IBAction func playPauseButton(sender: AnyObject) 
        if toggleState == 1 
            player.play()
            toggleState = 2
         else 
            player.pause()
            toggleState = 1
        
    

    @IBAction func stopButton(sender: AnyObject) 
        player.stop()
        player.currentTime = 0 
    

    @IBAction func sliderChanged(sender: AnyObject) 
        player.volume = sliderValue.value
    

    @IBOutlet weak var sliderValue: UISlider!

    override func viewDidLoad() 
        super.viewDidLoad()

        var audioPath = NSBundle.mainBundle().pathForResource("StarWars", ofType: "mp3")!
        var error: NSError?

        player = AVAudioPlayer(contentsOfURL: NSURL(string: audioPath), error: &error)
    

    override func didReceiveMemoryWarning() 
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    

【问题讨论】:

由于toggleState 似乎只有两种状态,因此将属性重命名为playerIsPlaying(或类似名称)并使其成为Bool 可能会很有用。或者,您可以用两种情况定义 enum,这将替换 12(因为它们的描述性不是很强)。 这里是解决方案:***.com/questions/28211993/… 【参考方案1】:

您可以根据状态更改按钮的图像:

@IBAction func playPauseButton(sender: AnyObject) 
        var playBtn = sender as UIButton
        if toggleState == 1 
            player.play()
            toggleState = 2
            playBtn.setImage(UIImage(named:"pause.png"),forState:UIControlState.Normal)
         else 
            player.pause()
            toggleState = 1           
            playBtn.setImage(UIImage(named:"play.png"),forState:UIControlState.Normal)
        
    

传递给playPauseButtonsender 对象是调用该方法的UIButton。因为它是作为AnyObject 类型的对象发送的,所以我们将其转换为UIButton。如果您不想强制转换,并且确定只有 UIButton 会调用此方法,您只需在函数参数中将 AnyObject 替换为 UIButton

【讨论】:

developer.apple.com/library/ios/documentation/AVFoundation/…

以上是关于点击时如何将播放按钮更改为暂停按钮?的主要内容,如果未能解决你的问题,请参考以下文章

将播放按钮更改为单击时暂停

音频完成后更改按钮 Xcode

在Objective C中点击后退按钮时如何将界面方向从横向更改为纵向

如何在点击时暂停音乐?

经常点击的按钮

当我单击“更多”按钮时如何将 div 高度属性更改为自动