Xcode6 New Feature - 2.Live Rend
2014-12-01 本文已影响67人
不思想者Alex
Xcode6中可以创建可以在 storyboard 中进行修改的自定义空间.
@IBDesignable
给控件所使用的class
加上@IBDesignable
前缀, 就可以让相应class
中代码的修改, 马上更新到storyboard
中.
创建一个 UIView
, 并让它的class
为CustomVierw
.
在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 进行实时修改了.