■階層: NSObject > UIResponder > UIView > UIControl > UIButton

UIButtonはボタンを表現するクラスです。テキストや画像を使ったボタンを自由に作成できるほか、システムで用意された標準ボタンを使用することもできます。

主なプロパティ

UIButtonの主要なプロパティを説明します。

プロパティ 説明
var buttonType: UIButtonType { get } ボタンタイプを取得
var currentTitle: String? { get } 現在の状態に応じたボタンタイトルを取得
var currentTitleColor: UIColor { get } 現在の状態に応じたボタンタイトルの色を取得
var currentTitleShadowColor: UIColor? { get } 現在の状態に応じたボタンタイトルのシャドウ色を取得

主なメソッド

UIButtonの重要なメソッドを説明します。

メソッド 説明
func setTitle(_ title: String?,
forState state: UIControlState)
状態に対するタイトルを設定
func titleColorForState(_ state: UIControlState) -> UIColor? 状態に対するタイトルの色を設定
func backgroundImageForState(_ state: UIControlState) -> UIImage? 状態に対する背景イメージを設定

サンプル

UIButtonをプログラムで生成するプログラムです。

ボタンを押したときの処理はaddTargetで設定します。Swift 2.2以降selectorの処理がより安全に記述できるようになりました。

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        //ボタンタイプを指定して生成。デフォルトはSystem。
        let button = UIButton(type: UIButtonType.System)
        button.frame = CGRectMake(20, 20, 200, 40)
        button.backgroundColor = UIColor.lightGrayColor()
        //ボタン文字列の設定
        button.setTitle("通常状態のボタンです", forState: UIControlState.Normal)
        button.setTitle("ハイライト状態のボタンです", forState: UIControlState.Highlighted)
        button.setTitle("無効状態のボタンです", forState: UIControlState.Disabled)
        //ボタンの色の設定
        button.setTitleColor(UIColor.blueColor(), forState: UIControlState.Normal)
        button.setTitleColor(UIColor.redColor(), forState: UIControlState.Highlighted)
        button.setTitleColor(UIColor.yellowColor(), forState: UIControlState.Disabled)
        //ボタンが押されたときの動作
        button.addTarget(self, action: #selector(ViewController.buttonTapped(_:)), forControlEvents: .TouchUpInside)
        
        self.view.addSubview(button)
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }

    func buttonTapped(sender: UIButton) {
        print("button tapped")
    }

}

実行結果です。
Result

iOS 7以降、DetailDisclosure、InfoLight、InfoDarkアイコンはすべて同じになりました。

参考情報

UIButton Class Reference