UIBarButtonItem のタイトルや文字色などの状態をサッと変更する✨
UIBarButtonItem
のタイトルや文字色などの状態を、アニメーションなしで サッと 変更したかったので試したことを書きます。📝
より正しい方法があれば教えていただけると助かります。🙏
実現したいこと
状況に応じて次の 条件1 と 条件2 のようにタイトルや文字色を サッと 切り替えます。
条件1
rightBarButtonItem.title = "Later"
rightBarButtonItem.tintColor = UIColor.whiteColor()
条件2
rightBarButtonItem.title = "Next"
rightBarButtonItem.tintColor = UIColor.redColor()
まず単純に設定すると
これだけだと Later と Next が サッと ではなく、いくつかの状態を経て切り替わります。
そこで実現した方法
UIBarButtonItem
を外したうえで状態を変更し、再度追加しました。
navigationItem.setRightBarButtonItem(nil, animated: false)
rightBarButtonItem.title = "Later"
rightBarButtonItem.tintColor = UIColor.whiteColor()
navigationItem.setRightBarButtonItem(rightBarButtonItem, animated: false)
するとこのように Later と Next が サッと 切り替わります。
こうした経緯
UIButton
の場合
UIButton
の場合title
を変更するのに次のように設定するとスムーズに切り替わりません。
button.title = "Next"
次のようにすればスムーズに切り替わります。
button.setTitle("Next", forState: .Normal)
UIBarButtonItem
の場合
まず同様の setTitle
がないか探しましたが見当たりません。
そこで UIBarButtonItem
が継承している UIBarItem
のドキュメント を見ると次のように記述されています。
You should set this property before adding the item to a bar. The default value is nil.
これを読んで追加する前に設定すればよいと考えました。
そして一度 UIBarButtonItem
を nil
にして再度追加したところ、 サッと 切り替わりました。
参考
https://developer.apple.com/reference/uikit/uibarbuttonitem
https://developer.apple.com/reference/uikit/uibaritem
Author And Source
この問題について(UIBarButtonItem のタイトルや文字色などの状態をサッと変更する✨), 我々は、より多くの情報をここで見つけました https://qiita.com/jpmartha/items/299caed8c87836cd8601著者帰属:元の著者の情報は、元の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 .