前にstoryboardを使ってボタンの設定をすることを試しましたが、コードのみで作成したい場合もありますが、どうするのでしょうか。
Xcode 13.4.1
UIButton をコードで設定
storyboardを使わずコードのみで記述する場合は、当然ですがstoryboard上で設定していたフォントやボタンなどの色やサイズなども細かく設定する必要があります。
前回同様に、ボタンを押すとラベルに tapped ! が表示されるコードです。
1 2 3 4 5 6 7 |
count += 1 if(count%2 == 0){ // 余りが0 } else{ // 余りが1 } |
countでボタンのタップされるたびにカウントアップして、その数値を2で割った余りによってラベルに「Swift Test」と「tapped !」を表示させます。
ViewController.swift
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 |
import UIKit class ViewController: UIViewController { // ラベルのインスタンス生成 let label = UILabel() var count = 0 override func viewDidLoad() { super.viewDidLoad() // ViewControllerの背景色 self.view.backgroundColor = UIColor.init( red:0.71, green: 1.0, blue: 0.95, alpha: 1) // スクリーンの横縦幅 let screenWidth:CGFloat = self.view.frame.width let screenHeight:CGFloat = self.view.frame.height // ボタンのインスタンス生成 let button = UIButton() // ボタンの位置とサイズを設定 button.frame = CGRect(x:screenWidth/4, y:screenHeight/2, width:screenWidth/2, height:50) // ボタンのタイトルを設定 button.setTitle("Tap me!", for:UIControl.State.normal) // タイトルの色 // button.setTitleColor(UIColor.white, for: .normal) // ボタンのフォントサイズ button.titleLabel?.font = UIFont.systemFont(ofSize: 36) // 背景色 button.backgroundColor = UIColor.init( red:0.9, green: 0.9, blue: 0.9, alpha: 1) // タップされたときのaction button.addTarget(self, action: #selector(ViewController.buttonTapped(sender:)), for: .touchUpInside) // Viewにボタンを追加 self.view.addSubview(button) // ラベルのサイズを設定 label.frame = CGRect(x:screenWidth/4, y:200, width:screenWidth/2, height:50); // ラベルの文字を設定 label.text = "Swift Test" // 文字を中央にalignする label.textAlignment = NSTextAlignment.center // ラベルのフォントサイズ label.font = UIFont.systemFont(ofSize: 36) // Viewにラベルを追加 self.view.addSubview(label) } @objc func buttonTapped(sender : Any) { count += 1 if(count%2 == 0){ label.text = "Swift Test" } else{ label.text = "tapped !" } } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } } |
コードが増えてしまいましたが、ダイナミックにボタンを動かしたい場合などはコードで書かざる得ないですね。
関連ページ:
- ボタンをXcodeで設定する
- UIButton, ボタンをコードで設定する
- 画像をボタンにする