2017-04-06 11 views
2

我的目标是创建一个像UISlider一样的自定义视图。在我的自定义视图中,我使用IBDesignableIBInspectable使其显示在Interface Builder中。如何在界面生成器中将其他属性的更改反映到属性中

如果你看一下在Interface Builder一个UISlider:

UISlider

你可以看到,如果我改变其Value比其Maximum越大,Maximum自动更新其在Interface Builder中值。

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

提前致谢!

编辑:这是我目前的执行情况:

Implementation

当前的结果:

Current output

你可以看到,当Minimum值改变时,Value价值也随之变化,但它的价值属性检查器不会更改。

+0

didSet {然后更新值呢? –

+1

恐怕didSet稍后会在运行时调用,而不是您在IB – VojtaStavik

+0

中更改它的时刻谢谢。我在我的问题中添加了更多信息。 – Tien

回答

0

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

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

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

编辑:这当然,并不妨碍你做你在做什么。一切都将按照预期使用didSet。你在IB中不会有即时的回应。

相关问题