Xcode6 New Feature - 2.Live Render

Xcode6中可以創建可以在 storyboard 中進行修改的自定義空間.

@IBDesignable

給控件所使用的class加上@IBDesignable前綴, 就可以讓相應class中代碼的修改, 馬上更新到storyboard中.

創建一個 UIView, 并讓它的classCustomVierw.

創建一個 UIVIew, class 為 CustomView

CustomView的 class 前加上@IBDesignable前綴, 這樣在drawRect(rect: CGRect)中的修改就會馬上更新到Stroyboard中.

import UIKit

@IBDesignable class CustomView: UIView {
    override func drawRect(rect: CGRect) {
        UIColor.redColor().setFill()
        UIRectFill(bounds)
    }
}
通過@IBDesignable 對 View 進行更新

@IBInspectable

除了及時更新代碼的修改之外, 我們還可以在 Inspect 中添加我們自定的屬性調節選項.

首先, 我們需要創建一個 closure屬性borderWidth(也就是說, 屬性的值是通過 block 中的計算得出的)在自定義屬性之前添加@IBInspectable前綴, didSet方法會在屬性被修改之后調用, 我們可以在didSet中對屬性進行操作, 這里只是簡單的賦值.

    @IBInspectable var borderWidth: CGFloat = 10 {
        didSet {
            //call after varable was set
            layer.borderWidth = borderWidth
        }
    }

回到 Srotyboard 中, 我們會發現, 在對應的 UIView 的 Inspect 中多了一個borderWidth的設置項, 這樣我們就可以在 storyboard 中對 UI 進行實時修改了.

Inspect 中多了一個 Border Width 的設置項
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容