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 続きを見る
【SwiftUI】GeometryReaderでViewのサイズを知ろう
● MVVM(Model-View-ViewModel) 続きを見る
【SwiftUI】SwiftUIをMVVMフレームワークで実装しよう