IBINSpectableの基本的な使い方

3747 ワード

IBinspectable:インスペクタがインタフェース要素のプロパティを変更できるようにします。


IBinspectableを使用する前に、ストーリーボードにビューを追加します。



このビューの背景色を変更するには、右側のinspectorで変更します。


では、ビューの枠線の厚さと色をどのように変更しますか?


1)第1の方法は,ビューのIBOUTを接続し,borderWidthとborderColorをコードで指定することである.


2)2つ目の方法は、チェッカを使用してビューの背景色を変更するなど、枠線の幅と枠線の色を変更することです。IBinspectableはこのときに使用されます。


1.cocoa Touchclass UIViewファイルを作成してください。



2.上記1で作成したViewをストーリーボードのViewに接続します。



3.IBinspectableを使用します。

  • 1)枠線幅の変更

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

    ストーリーボードの検査員に移動します。変化はありますか?borderWidthプロパティがインスペクタに作成されました。


  • 2)borderColorの変更

  •     @IBInspectable var borderColor: UIColor? {
            get {
                return UIColor(cgColor: layer.borderColor!)
            }
            set {
                layer.borderColor = newValue?.cgColor
            }
        }
    

    やはりStoryBoardの検査員さん変化はありますか?今回は、InspectorでborderColorプロパティを作成しました。



    InspectorでborderWidthとborderColorのプロパティ値を変更します。うん。変更はありませんが、実際に実行すると、変更した属性値がよく適用されます。IBinspectableのみを指定すると、コンパイル時に反映されないため、ストーリーボードでリアルタイムで表示できません。



    IBDesignは、上記の問題を解決し、ストーリーボードでリアルタイムで表示できる方法です。


    IBINSpectableが設定されているborderWidthとborderColorのプロパティ値のViewを返し、@IBDESIGNALと宣言してStoryBoardに移動します。




    こつこつ!inspectorで変更したborderWidthとborderColorのプロパティがコンパイル時にリアルタイムで反映されていることがわかります。