サイトアイコン 未知の路

【Swift】UIButtonを継承したクラスをstoryboardから使う

Swift2.0以降のサンプルコードで、UIパーツのサブクラスをstoryboard上でひも付ける記事が見つからなかったので、覚書として。

やること

環境

UIButtonのサブクラスを作成

SwiftFileをプロジェクト配下に作成し、次のようなコードを記述する。

import UIKit;

class BorderButton: UIButton{
    
    required init(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)!;

        /* ここに初期化したい要素を記述する。以下は一例 */
        layer.cornerRadius = 10;  /* ボタンの角の半径 */
        layer.borderWidth = 1;  /* ボタンの枠線の太さ */
        layer.borderColor = UIColor.blueColor().CGColor;  /* ボタンの枠線の色 */
    }
}

storyboard上のButtonにUIButtonのサブクラスをひも付け

標準のUIButtonにサブクラスをひも付けするには、2ステップあります。

UIButtonにイベントを設定

storyboardにUIButtonを配置した前提です。
UIButtonを右クリックすると、イベントの一覧が黒色のダイアログで表示されます。
設定したいイベントの右にある◯にカーソルを合わせ、Shiftキーを押しながらViewControllerの下にドラッグしてドロップすると、イベントの接続が行われます。

CustomClassのClassにサブクラスを指定

見たまんまですが、CustomClassのClassにサブクラスを指定するだけでサブクラスのコードが反映されるイメージで良いかと。

実機検証


枠が表示されていることが確認できます。

モバイルバージョンを終了