【发布时间】:2016-01-05 22:28:58
【问题描述】:
我正在开发一个 iOS 音频应用程序作为学习项目。我在其中一项功能中遇到问题,该功能检查播放器是否正在播放或暂停/停止。如果它正在播放,则应将按钮栏中的按钮更改为“暂停”按钮,或者如果它已暂停或停止,请将按钮更改为“播放”按钮。我将按钮栏项目作为 NSMutableArray 分配给变量“项目”,然后对按钮进行必要的更改,然后将“项目”分配回按钮栏项目以更新显示。
在我的代码中,我遇到了一个错误:
self.toolbar.items = items
错误信息是
无法将 NSMutableArray 类型的值赋给 UIBarButtonItem 类型
我假设我需要转换 NSMutableArray,我尝试过使用 Array,当我这样做时,错误消失了,但按钮坏了。
我的代码的相关部分是:
@IBOutlet weak var toolbar: UIToolbar!
@IBOutlet var playButton: UIBarButtonItem!
@IBAction func playPausePressed(sender: AnyObject) {
let playbackState = self.player.playbackState as MPMusicPlaybackState
let items = NSMutableArray(array: self.toolbar.items!)
if playbackState == .Stopped || playbackState == .Paused{
self.player.play()
items[2] = self.pauseButton
} else if playbackState == .Playing{
self.player.pause()
items[2] = self.playButton
}
self.toolbar.items = items
}
任何帮助或指导将不胜感激。 谢谢!
【问题讨论】:
-
playButton 是在 Storyboard 编辑器中创建的。 pauseButton 被声明为 ViewController 类中的一个变量,var pauseButton: UIBarButtonItem!