如何在Interface Builder中将其他属性的更改反映到属性

时间:2017-04-06 09:23:06

标签: swift xcode interface-builder

我的目标是创建像UISlider这样的自定义视图。在我的自定义视图中,我使用IBDesignableIBInspectable将其显示在Interface Builder中。

如果你在Interface Builder中查看UISlider:

UISlider

您可以看到我将Value更改为大于MaximumMaximum会自动在界面构建器中更新其值。

我的问题是:当我在Interface Builder中更改其他属性的值(如Maximum)时,如何使属性(如Value)更改其值?

提前感谢!

编辑:这是我目前的实施:

Implementation

目前的结果:

Current output

您可以看到Minimum值的更改时间,Value的值也会发生变化,但其在属性检查器中的值不会发生变化。

1 个答案:

答案 0 :(得分:3)

我做了一些测试,我担心我们目前无法在Interface Builder中做这样的事情。即使您的@IBInspectable具有默认值,IB也会忽略它并且不会显示它。在设置之前,未指定该值(“ - ”)。

@IBInspectable目前(Xcode8.3)只是更好的方式来设置“用户定义的运行时属性”。在使用KVC加载NIB期间,这些属性将应用于视图。

tl; dr 我认为目前没有(官方)方式如何做你想做的事。

编辑:当然,这并不妨碍你做你正在做的事情。使用didSet,一切都将按预期工作。你不会在IB中得到即时回应。