繁体   English   中英

单击更改BarButtonItem图标

[英]Change BarButtonItem icon on click

我正在尝试创建一个计数器。 这个想法很简单,您单击“播放”按钮,然后单击它便会消失并变成“暂停”图标,这将触发其他操作。

我以为设置计数器状态的变量并更改图标(仅使用一个按钮)就可以解决问题,但是我不知道如何设置按钮图像以“暂停”或出现在下拉菜单中的任何其他按钮从情节提要面板创建菜单时的菜单。

这里的代码:

@IBOutlet weak var playButton: UIBarButtonItem!
var timer = NSTimer()
var currentStatus = "stopped"


@IBAction func playAction(sender: AnyObject) {
    if (currentStatus == "stopped"){
        timer = NSTimer.scheduledTimerWithTimeInterval(1, target: self, selector: Selector("increaseTimer"), userInfo: nil, repeats: true)
        currentStatus = "running"
        // change button icon (playButton) to Stop
    }
    else {
        currentStatus = "stopped"
        timer.invalidate()
       // change button icon (playButton) to Play
    }

}

您可以这样设置按钮样式:

//setButton to play
yourBarButtonItem = UIBarButtonItem(UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.Play, target: self, action: "TheMethodThatTheButtonShouldCall"), animated: true)
//setButton to stop
yourBarButtonItem = UIBarButtonItem(UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.Stop, target: self, action: "TheMethodThatTheButtonShouldCall"), animated: true)

您可以使用数组来设置按钮样式,如下所示:

   func addCustomNavigationItemAtLeftAndRightSide(leftButtonItems:[UIBarButtonItem], rightButtonItems:[UIBarButtonItem]) {

    self.navigationItem.leftBarButtonItems = leftButtonItems
    self.navigationItem.rightBarButtonItems = rightButtonItems
 }

您可以使用如下样式:

  let leftButtonItem = UIBarButtonItem(image: UIImage(named: "ic_top_back"), style: .Plain, target: self, action: "onBackButtonClicked:")
  addCustomNavigationItemAtLeftAndRightSide([leftButtonItem], rightButtonItems: [])

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM