IT アプリ開発

【Swift】Buttonをクリックした際に処理を実行する

2021年2月14日

Webサイトではボタンを表示する際は、
buttonタグを設定することによって、表示をすることができます。

Swiftでは2種類のやり方があります。
1つはstoryboardから対応するViewController.swiftに紐付けて、そうすると@IAButonという関数が生成されてそこに記載する。
そしてもう1つがswiftコードでbuttonを生み出して、そして関数定義する方法です。

Buttonの設定

swiftは鉄則として1画面1ViewControllerなので、そのViewController内にbuttonを生み出すコードを記載します。

let button:UIButton = UIButton()             // buttonを生成
button.frame(CGRect(x: 100, y: 200, height: 300px, width: 300px))           // buttonの設置場所とサイズ指定
button.textfield = "ボタン"           // buttonの表示名
button.textColor = UIColor.systemPink          // buttonのテキストの色

self.view.addSubview(button)

これでボタンの作成ができました。

Buttonをタップしたときの挙動指定

簡単に書くと以下のようなコードを記載します。

button.addTarget(self, action: #selector(self.tapButton(_:)), for: UIControl.Event.touchUpInside)
button.setTitle("ボタン", for: UIControl.State.normal)

// tapButton
@objc func tapButton(_ sender: UIButton){
        print("ボタンがタップされました。)
}

UIButtonクラスには、addTargetというメソッドが定義されています。
これは何かbuttonに対してイベントが起きた時にどんなことをするかを指定するもので、
for: どういうイベントが起きた時に?
action: どの関数を実行するか?
を引数に指定します。
forにある通り、UIControlクラスにはAppleが定義したイベントがすでにあり、上記ではtouchUpInside、つまりbuttonをタッチしたら、tabButtonメソッドを実行という感じになります。

#selectorというのはこのactionはobjective-cの関数でないとダメなので#selectorという言葉を記載します。
そして関数はobjective-cなのでtapButton関数の先頭には@objcと記載して定義します。

● GeometryReader

● MVVM(Model-View-ViewModel)

-IT, アプリ開発
-

© 2022 Yosshi Blog Powered by AFFINGER5