目次
Swiftのselectorでできること
Swiftのselectorは、ボタン(UIボタン)などにメソッドをつけたい時に使います。
ボタンが押された時に何か処理を行いたい時に、メソッド名をselectorで指定します。
実践: selectorを使ってみよう
今回は、ボタンが押されたら画面の色を変える処理をselectorを使って作ってみます。
アプリの作成
まず適当にアプリを作ります。初期画面です。

ボタンをViewContorlerにつなぐ
ボタンを画面に置きます。

右クリックで、画面からViewControllerに引っ張ってきてつなぎます。
ボタンの名前は、testBtnとします。

selectorを使う
このボタン(testBtn)にselectorを使います。

addTargetでボタンに処理を加えています。addTargetはボタンにイベント(タップなど)が起こった時の処理を指定できます。
UIButtonにaddTargetを使う場合は、上の画像のように、
・target(どのクラスで使うものか)
・selector(ボタンにイベントが起こった時行うメソッドを指定する)
・event(ボタンにどんなイベントが起こったらselectorのメソッドを呼ぶか決める)
の3つを指定します。

targetはViewControllerで使うのでself、
actionは画面の色を変えるメソッドなのでchangeColor、
eventは.touchUpInside に指定しています。
※eventの種類の参考記事: UIControl – iPhoneアプリ開発の虎の巻
次にchangeColorメソッドを用意して、ボタンが押されたら画面の色を切り替える処理を追加します。

selectorで指定してあるメソッドを書くときは、@objcをつけてください。
changeColorメソッドで、viewControllerのUIViewを緑に変えています。
シュミレーターで試してみます。

起動しました。ボタンを押してみると、、

このようにボタンがイベントを検知して、selectorのメソッドが呼ばれて、色が緑に変わります。
サンプルコード
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
import UIKit class ViewController: UIViewController { @IBOutlet weak var testBtn: UIButton! override func viewDidLoad() { super.viewDidLoad() testBtn.addTarget(self, action: #selector(changeColor), for: .touchUpInside) } @objc func changeColor() { self.view.backgroundColor = .green } } |
以上selectorの使い方についてまとめてみました!
未経験からエンジニアなりませんか?:社会人転職コース
参考: