【问题标题】: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(因为它们的描述性不是很强)。

标签: ios swift uibutton


【解决方案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

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-25
  • 1970-01-01
  • 1970-01-01
  • 2019-06-25
  • 1970-01-01
相关资源
最近更新 更多