我在iOS 8中第一次使用故事板,到目前为止一直喜欢故事板上的实时渲染方面。但是,我似乎遇到了让我的观点在故事板上正确呈现的障碍。
我有一个容器UIView
,它包含与故事板上UILabel
的连接,我试图根据标签父容器视图上的IBInspectable
属性设置标签的文本
@IBDesignable class ContainerView : UIView {
@IBOutlet weak var : titleLabel : UILabel!
@IBInspectable var title : String = "" {
didSet {
titleLabel?.text = title
}
}
/* Init functions */
prepareForInterfaceBuilder() {
self.titleLabel?.text = title
}
}
如果我在故事板中设置属性,它会在程序执行时按预期呈现,但无法像我期望的那样在故事板中呈现。我已经检查了我的连接,所有内容似乎都已正确连接。
我的问题是:是否可以通过IBInspectable属性影响IBOutlet连接视图的内容,并让它们在故事板上实时渲染,如果是,我错过了什么或做错了什么?
答案 0 :(得分:12)
很遗憾,您无法在界面构建器中看到标记为IBOutlet
的自定义视图的IBDesignable
个对象。如果要在界面构建器中查看出口,则必须使用常规变量IBOutlet
,并且必须以编程方式创建对象。
另请注意,如果您需要更改对象的界面构建器中的内容,则必须将属性定义为IBInspectable
。目前,以下变量类型对IBInspectable
:
Bool
,CGFloat
,CGPoint
,CGRect
,CGSize
,NSInteger
,NSString
,UIColor
,UIImage
我希望这个答案对你来说是充分清楚的。
编辑:我发现以下文章描述了如何做您需要的方法:
http://justabeech.com/2014/07/27/xcode-6-live-rendering-from-nib/
第二次编辑:我尝试了这篇文章并且有效。现在我可以在界面构建器上看到我的插座