2017-04-06 33 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中不會有即時的迴應。

相關問題