可使用 @IBInspectable 自訂InterfaceBuilder屬性

例如自訂一個UIView的陰影效果

 

extension UIView {

    /**

     陰影效果 位移

     */

    @IBInspectable var shadowOffset: CGSize {

        get {

            return self.layer.shadowOffset

        }

        

        set {

            self.layer.shadowOffset = newValue

        }

    }

    

    /**

     陰影效果 透明度

     */

    @IBInspectable var shadowOpacity: Float {

        get {

            return self.layer.shadowOpacity

        }

        

        set {

            

            self.layer.shadowOpacity = newValue

        }

    }

    

    /**

     陰影效果 半徑

     */

    @IBInspectable var shadowRadius: CGFloat {

        get {

            return self.layer.shadowRadius

        }

        

        set {

            self.layer.shadowRadius = newValue

        }

    }

    

    /**

     陰影效果 顏色

     */

    @IBInspectable var shadowColor: UIColor? {

        get {

            guard let cgColor = self.layer.shadowColor else {

                return nil

            }

            

            return UIColor(CGColor: cgColor)

        }

        

        set {

            self.layer.shadowColor = newValue?.CGColor

        }

    }

    

    /**

     加入陰影效果

     */

    func shadow(shadowOffset: CGSize, shadowOpacity: Float, shadowRadius: CGFloat, shadowColor: CGColorRef?)

    {

        self.layer.shadowOffset = shadowOffset

        self.layer.shadowOpacity = shadowOpacity

        self.layer.shadowRadius = shadowRadius

        self.layer.shadowColor = shadowColor

    }

}

 

參考資料:

http://nshipster.com/ibinspectable-ibdesignable/

http://www.appcoda.com.tw/ibdesignable-ibinspectable/

 

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 小賢 的頭像
    小賢

    小賢的部落格

    小賢 發表在 痞客邦 留言(0) 人氣()