Xcode6 New Feature - 2.Live Rend

2014-12-01  本文已影响67人  不思想者Alex

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 的设置项
上一篇下一篇

猜你喜欢

热点阅读