通过IBInspectable属性实时渲染IBOutlet连接子视图

我在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连接视图的内容,并让它们在故事板上实时渲染,如果是,我错过了什么或做错了什么?

遗憾的是,您无法在界面构建器中看到标记为IBDesignable自定义视图的IBOutlet对象。 如果要在界面构建器中查看sockets,则必须使用常规变量而不是IBOutlet并且必须以编程方式创建对象。

另请注意,如果您需要从对象的界面构建器更改某些内容,则必须将属性定义为IBInspectable 。 目前,以下变量类型对IBInspectable有效:

BoolCGFloatCGPointCGRectCGSizeNSIntegerNSStringUIColorUIImage

我希望这个答案对你来说是充分清楚的。

编辑:我发现以下文章描述了如何做你需要的方法:

http://justabeech.com/2014/07/27/xcode-6-live-rendering-from-nib/

第二次编辑:我试过这篇文章并且它有效。 现在我可以在界面构建器上看到我的sockets