如何在界面生成器中将其他属性的更改反映到属性中
问题描述:
我的目标是创建一个像UISlider一样的自定义视图。在我的自定义视图中,我使用IBDesignable
和IBInspectable
使其显示在Interface Builder中。如何在界面生成器中将其他属性的更改反映到属性中
如果你看一下在Interface Builder一个UISlider:
你可以看到,如果我改变其Value
比其Maximum
越大,Maximum
自动更新其在Interface Builder中值。
我的问题是:如何在Interface Builder中更改其他属性的值(如Value
)时更改其值(如Maximum
)?
提前致谢!
编辑:这是我目前的执行情况:
当前的结果:
你可以看到,当Minimum
值改变时,Value
价值也随之变化,但它的价值属性检查器不会更改。
答
我做了一些测试,恐怕我们目前无法在Interface Builder中做类似的事情。即使您的@IBInspectable具有默认值,IB也会忽略它并不显示它。在设置之前,该值未指定(“ - ”)。
@IBInspectable目前(Xcode8.3)如何设置“用户定义的运行时属性”有点更好。在使用KVC加载NIB期间,这些属性应用于视图。
tl; dr我认为目前没有(官方)方式如何做你想做的。
编辑:这当然,并不妨碍你做你在做什么。一切都将按照预期使用didSet。你在IB中不会有即时的回应。
didSet {然后更新值呢? –
恐怕didSet稍后会在运行时调用,而不是您在IB – VojtaStavik
中更改它的时刻谢谢。我在我的问题中添加了更多信息。 – Tien