更改UIToolbar项会导致工具栏变为空白

时间:2015-03-20 21:50:44

标签: ios swift uibarbuttonitem uitoolbar

我在Storyboard中创建了一个自定义UIToolbar,其中包含倒带,暂停和快进UIBarButtonItems。我点击时尝试用播放按钮替换暂停按钮。我的代码如下:

@IBOutlet weak var bottomToolbar: UIToolbar!

@IBAction func playPause() {
    var newButton: UIBarButtonItem
    if !self.timer.valid {
        let aSelector : Selector = "updateTime"
        self.timer = NSTimer.scheduledTimerWithTimeInterval(1, target: self, selector: aSelector, userInfo: nil, repeats: true)
        newButton = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.Pause, target: self, action: "playPause")
    }
    else {
        self.timer.invalidate()
        newButton = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.Play, target: self, action: "playPause")
    }
    var items = self.bottomToolbar.items
    items?[3] = newButton
    self.bottomToolbar.setItems(items, animated: true)
}

工具栏初始化为带有白色按钮的深灰色背景。但是,尝试按钮切换后,整个工具栏变为白色。有什么想法吗?

更新1:
因此,在弄乱了颜色并逐步完成代码之后,我发现除了工具栏变白之外,只有暂停/播放按钮消失。但即使在消失之后,点击它应该仍然向VC发送信号。并尝试将工具栏背景重置为深灰色并没有帮助。

1 个答案:

答案 0 :(得分:2)

我最近遇到了类似的问题。在将toolbar.Items再次设置为您的项目之前,将 items = self.bottomToolbar.items self.bottomToolbar.setItems:([], animated: false) items?[3] = newButton self.bottomToolbar.setItems(items, animated: true) 设置为空数组是有帮助的。

我的swift非常有限,请原谅任何编译错误:

{{1}}