実行環境
【Xcode】Version 9.2
【Swift】Version 4.0.3
概要
コード上からボタンを追加してイベントを取得する方法のメモです。
方法
コード
override func viewDidLoad() {
super.viewDidLoad()
// UIButtonのインスタンスを作成する
let button = UIButton(type: UIButtonType.system)
// ボタンを押した時に実行するメソッドを指定
button.addTarget(self, action: #selector(buttonEvent(_:)), for: UIControlEvents.touchUpInside)
// ラベルを設定する
button.setTitle("ボタンのテキスト", for: UIControlState.normal)
// サイズを決める(自動調整)
button.sizeToFit()
// 位置を決める(画面中央)
button.center = self.view.center
// viewに追加する
self.view.addSubview(button)
}
// ボタンが押された時に呼ばれるメソッド
@objc func buttonEvent(_ sender: UIButton) {
print("ボタンの情報: \(sender)")
}
実行結果
おまけ
// サイズを変更する
button.frame = CGRect(x: 0, y: 0, width: 150, height: 50)
// 任意の場所に設置する
button.layer.position = CGPoint(x: self.view.frame.width/2, y:200)
// 文字色を変える
button.setTitleColor(UIColor.white, for: UIControlState.normal)
// 背景色を変える
button.backgroundColor = UIColor(red: 0.3, green: 0.7, blue: 0.6, alpha: 1)
// 枠の太さを変える
button.layer.borderWidth = 1.0
// 枠の色を変える
button.layer.borderColor = UIColor(red: 0.3, green: 0.6, blue: 0.5, alpha: 1).cgColor
// 枠に丸みをつける
button.layer.cornerRadius = 25
// 影の濃さを決める
button.layer.shadowOpacity = 0.5
// 影のサイズを決める
button.layer.shadowOffset = CGSize(width: 2, height: 2)
// ボタンが押されたときのラベル
button.setTitle("押された!", for: UIControlState.highlighted)
// ボタンが押されたときの文字色
button.setTitleColor(UIColor.red, for: UIControlState.highlighted)
実行結果
参考