1. 程式人生 > >swift 自定義控制元件在StoryBoard(xib)裡使用的屬性

swift 自定義控制元件在StoryBoard(xib)裡使用的屬性

有時候我們在StoryBoard裡用拖拽方法建立屬性的時候,總會有一些常用的屬性沒有提供視覺化操作,所以我們必須在連線類中用程式碼去實現,雖然也比較簡單,但是這樣重複的操作大大的增加了開發時間,如果能在拖拽的介面就能直接除錯相關屬性,就像一個UIView直接視覺化設定背景顏色一樣,豈不樂哉,以下是在Swift工程中實現的一些方法:

第一步建立Target



建立好以後目錄裡面就會多出一個分組


其中MyView類是另外建立的,繼承與UIView,下面是類中實現的主要程式碼

import UIKit

//@IBDesignable告訴編譯器,此類可以被nib識別使用
@IBDesignable class MyView: UIView {
//@IBInspectable告訴編譯器,此屬性可以被nib使用
    @IBInspectable var describle : String = ""{
        didSet{
//            已經被賦值
            
        }
    }
    
    @IBInspectable var borderWidth : CGFloat = 0{
        didSet{
            layer.borderWidth = borderWidth
        }
    }
    
    @IBInspectable var borderColor : UIColor = UIColor.clearColor(){
        didSet{
            layer.borderColor = borderColor.CGColor
        }
    }
    
    @IBInspectable var cornerRadius : CGFloat = 0{
        didSet{
            layer.cornerRadius = cornerRadius
        }
    }
    
    /*
    // Only override drawRect: if you perform custom drawing.
    // An empty implementation adversely affects performance during animation.
    override func drawRect(rect: CGRect) {
        // Drawing code
    }
    */

}

這裡只是在UIView中增加了幾個簡單視覺化操作的屬性,然後在VC中拖拽一個UIView控制元件繼承於MyView



可以看到在程式碼中定義的幾個屬性,在這裡都可以看到和設定,這樣以後在使用的時候是不是就方便多了。