我的目标是创建像UISlider这样的自定义视图。在我的自定义视图中,我使用IBDesignable
和IBInspectable
将其显示在Interface Builder中。
如果你在Interface Builder中查看UISlider:
您可以看到我将Value
更改为大于Maximum
,Maximum
会自动在界面构建器中更新其值。
我的问题是:当我在Interface Builder中更改其他属性的值(如Maximum
)时,如何使属性(如Value
)更改其值?
提前感谢!
编辑:这是我目前的实施:
目前的结果:
您可以看到Minimum
值的更改时间,Value
的值也会发生变化,但其在属性检查器中的值不会发生变化。
答案 0 :(得分:3)
我做了一些测试,我担心我们目前无法在Interface Builder中做这样的事情。即使您的@IBInspectable具有默认值,IB也会忽略它并且不会显示它。在设置之前,未指定该值(“ - ”)。
@IBInspectable目前(Xcode8.3)只是更好的方式来设置“用户定义的运行时属性”。在使用KVC加载NIB期间,这些属性将应用于视图。
tl; dr 我认为目前没有(官方)方式如何做你想做的事。
编辑:当然,这并不妨碍你做你正在做的事情。使用didSet,一切都将按预期工作。你不会在IB中得到即时回应。