UIBarButtonItemの再生、一時停止ボタンの切り替え
はじめに
qnote Advent Calendar 2016 3日目は4月に新卒で入社した新人が書いてみたいと思います。
UIBarButtonItemを動的に切り替えたいそんなあなたに
例として音楽プレイヤーアプリの再生と一時停止ボタンを切り替えたいと思います。
(真ん中のボタンを押したら再生と一時停止を切り替える)
@IBOutlet weak var toolbar: UIToolbar!
@IBAction func playPauseAction(_ sender: UIBarButtonItem) {
var items = toolbar.items!
var toggleButton:UIBarButtonItem
if /*音楽を再生中かどうか*/ {
// 音楽の一時停止処理など
toggleButton = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.play, target: self, action: #selector(hogeViewController.playPauseAction(_:)))
} else {
// 音楽の再生処理など
toggleButton = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.pause, target: self, action: #selector(hogeViewController.playPauseAction(_:)))
}
items[/*切り替えるボタンの場所*/] = toggleButton
toolbar.setItems(items, animated: false)
}
解説
StoryBoardからアウトレットとアクションを引っ張ってきます。
items[/*切り替えるボタンの場所*/] = toggleButton
itemsにはUIToolbarの配列が入っているので何番目のボタンを切り替えるか指定します。
最初の画像の構成は以下のようになっているので
PauseとPlayを切り替えるのでここでは3を指定すればOKです。
別のメソッドを呼びたい時は
hogeViewController.playPauseAction(_:))
の部分を適宜書き換えれば呼び出せます。
参考サイト
http://stackoverflow.com/questions/29639537/toggle-play-pause-uibarbuttonitem-in-toolbar-using-swift
UIBarButtonSystemItemの一覧はこちら
https://developer.apple.com/reference/uikit/uibarbuttonsystemitem
Author And Source
この問題について(UIBarButtonItemの再生、一時停止ボタンの切り替え), 我々は、より多くの情報をここで見つけました https://qiita.com/k-k-c/items/18594bc7229280e676aa著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .