2017-04-06 13 views
2

私のターゲットは、UISliderのようなカスタムビューを作成することです。私のカスタムビューでは、IBDesignableIBInspectableを使用してInterface Builderに表示します。他のプロパティからの変更をInterface Builderのプロパティに反映する方法

あなたがInterface BuilderでUISliderを見れば:

UISlider

あなたは、私がそのMaximumよりも大きくなるようにそのValueを変更した場合、Maximumは自動的にInterface Builderでその値を更新見ることができます。

私の質問は:(Maximumのような)プロパティを作る方法は、Interface Builderで他のプロパティの値(Valueなど)を変更すると値が変わるのですか?

ありがとうございます!

EDIT:

Implementation

現在の結果:ここに私の現在の実装である

Current output

は、あなたが見ることができるMinimum値が変更され、Valueの値も変化するが、その値は属性インスペクタは変更されません。

+0

didSetと値を更新しましたか? –

+1

私は恐れていますが、実行時に後で呼び出されるSetは、IBで変更する瞬間ではありません – VojtaStavik

+0

ありがとうございます。私は私の質問に多くの情報を加えました。 – Tien

答えて

0

私はいくつかのテストを行いましたが、現時点ではInterface Builderでそのようなことを行うことはできません。 @IBInspectableがデフォルト値を持っていても、IBはそれを無視してそれを表示しません。設定するまで値は指定されません( " - ")。

@IBInspectableは現在(Xcode8.3)「ユーザー定義の実行時属性」の設定方法を少し上手く表しています。これらの属性は、KVCを使用してNIBを読み込む際にビューに適用されます。

tl; dr私は現在、あなたが望むように(正式な)方法はないと思います。

編集:これは、もちろん、あなたがやっていることをすることを妨げていません。 didSetを使用すると、すべてが期待通りに機能します。 IBで瞬時に対応することはできません。

関連する問題