簡體   English   中英

輕按時如何將播放按鈕更改為暫停按鈕?

[英]How do I change a play button to a pause button when tapped on?

輕按時,我需要將播放按鈕更改為暫停按鈕,反之亦然。 我對此還很.swift ,所以我不知道如何識別.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.
    }
}

您可以根據狀態更改按鈕的圖像:

@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類型的對象發送的, AnyObject我們將其AnyObject轉換為UIButton 如果您不想AnyObject ,並且確定只有UIButton會調用此方法,則可以在function參數中簡單地將AnyObject替換為UIButton

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM