这是为Android定义布局时的一个功能,它允许定义属性以便设计。
http://tools.android.com/tips/layout-designtime-attributes
但是在使用故事板制作iOS应用程序时,我没有找到任何相同的方法来做同样的事情。
目前我正在清理ViewController的viewDidLoad上的所有设计值。有没有办法将布局属性定义为设计占位符,并避免在所有视图控制器中执行此setupClean步骤?
答案 0 :(得分:3)
当您想要在故事板中即时反映特定组件的属性/属性时,您可以使用 @IBDesignable 来实现。
要实现此目的,您必须
<强>步骤强>
创建您想要在故事板上反映的类型的子类,在此示例中,我将 UILabel 子类化为 DGlabel
< / LI>将该calss设为 @IBDesignable ,请参阅示例
现在您可以从故事板更改该属性的值,如下面的屏幕截图
import UIKit
@IBDesignable
class DGLabel: UILabel {
@IBInspectable var borderColor:UIColor = UIColor.red {
didSet {
reflectChange()
}
}
override init(frame: CGRect) {
super.init(frame: frame)
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
}
func reflectChange() {
self.layer.borderWidth = 1
self.layer.borderColor = borderColor.cgColor
}
}
希望这可以让您了解这个过程。
答案 1 :(得分:1)
答案 2 :(得分:0)
我认为您可以通过IBDesignable
为您的观点实现类似的功能。然后,您可以使用prepareForInterfaceBuilder()
和TARGET_INTERFACE_BUILDER
生成模拟数据,以便在Interface Builder中显示。
答案 3 :(得分:-1)