LoginSignup
14
8

More than 5 years have passed since last update.

Swift 4.2からBool型を反転させる"toggle"メソッドが追加された

Last updated at Posted at 2018-11-05

Swift 4.2からBool型を反転させる"Toggle"が追加されたので、紹介したいと思います。

どういうものかというと、Bool型のtruefalseに、falsetrueにするというものです。

具体的に例を挙げてみます。

Swift
@IBOutlet func onButtonTapped(_ sender: UIButton) {
    sender.isSelected = !sender.isSelected
}

上記のように選択されていないものを選択済みにしたり、その逆で選択されているものを非選択にする、というような時には上記のように書いていました。

Swift 4.2から追加されたtoggle()を使えば以下のように記載することができます。

Swift
@IBOutlet func onButtonTapped(_ sender: UIButton) {
    sender.isSelected.toggle()
}

上記の通りなのですが、プロパティに代入していましたが、メソッドのように実行する形式でBool型を反転することができるようになりました。

toggle()はBool型のメソッドなので、UIStackViewに内包しているオブジェクトのisHiddenの切り替えにも使えます。

Swift
@IBOutlet func onButtonTapped(_ sender: UIButton) {
    self.leftView.isHidden.toggle()
}

isSewlectedからisHiddenに変えただけですが、Bool型であればtoggle()で切り替えることができます。

UIStackViewの中のViewを表示・非表示するサンプルコードをリポジトリで公開しています。

https://github.com/takashings/ToggleSample.git

UIBarButtonItemをタップするごとにUIStackViewに内包された左右のUIViewの表示・非表示を切り替えることができます。

Swift
@IBAction func onLeftBarButtonItemTapped(_ sender: UIBarButtonItem) {
    self.leftView.isHidden.toggle()
}

@IBAction func onRightBarButtonItemTapped(_ sender: UIBarButtonItem) {
    self.rightView.isHidden.toggle()
}
14
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14
8