角丸の設定を Storyboard でできるようにする

nbeppu 611views 更新:2015年2月2日

Swift で角丸やレイヤーの枠線を設定したい場合、

self.layer.cornerRadius = 5
self.layer.masksToBounds = true
self.layer.borderWidth = 0.5
self.layer.borderColor =  UIColor.blackColor().CGColor

のように記述します。これらの設定については Storyboard 上には表示されません。

以下のように、Extension を使って拡張を行うことにより、Storyboard 上に設定項目を表示させることができるようになります。

import UIKit

extension UIView {

    @IBInspectable
    var cornerRadius: CGFloat {
        get {
            return self.layer.cornerRadius
        }
        set {
            self.layer.cornerRadius = newValue
            self.layer.masksToBounds = true
        }
    }

    @IBInspectable
    var borderWidth: CGFloat {
        get {
            return self.layer.borderWidth
        }
        set {
            self.layer.borderWidth = newValue
        }
    }

    @IBInspectable
    var borderColor: UIColor? {
        get {
            return UIColor(CGColor: self.layer.borderColor)
        }
        set {
            self.layer.borderColor = newValue?.CGColor
        }
    }

}

User Defined Runtime Attributes で設定することもできるのですが、こちらの方が直接指定ができて便利ですね。

ログイン / 新規登録してコメントする

このソースコードをストックして後で利用したり、作業に利用したソースコードをまとめることができます。

こちらもお役に立つかもしれません