post Image
【Swift4】コードからUIButtonを追加してイベントを取得する

実行環境

【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)")
}

実行結果

スクリーンショット 2018-02-22 16.43.13.png

おまけ

// サイズを変更する
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)

実行結果

スクリーンショット 2018-02-23 10.13.52.png

参考

https://developer.apple.com/documentation/uikit/uibutton#//apple_ref/c/tdef/UIButton


『 Swift 』Article List