2016-12-03 2 views
0

取得するインターネット情報に基づいて異なるIBInspectableアイテムを設定したいと思います。たとえば、緑色、赤色、オレンジ色の円のIBInspectablesがあります。リクエストが緑色の場合は、isGreenをYesに、その他はNoに設定します。他の2人にも同じことが起こります。 IBInspectables hereが表示されます。私がそこに置いたコードでそれを行うことができるのは知っていますが、プログラムでそれらを切り替える方法はありますか?プログラムでIBInspectableを設定する

+0

あなたは@IBInspactableプロパティを設定するために見ることができます:https://iosdevcenters.blogspot.com/2017/07/how-to-use-ibinspectable-in-swift-30.html –

答えて

2

任意のIBInspectableは、単にIBに表示されるようにコードされたプロパティです。だから、あなたがこれを持っている場合:

@IBInspectable var isGreen:Bool? { 
    didSet { 
     // code to color circle? 
    } 
} 

あなたはこれを行うことができます。

self.isGreen = true 
+0

ですから、私のViewControllerでは、@IBInspectable isGreenを追加し、viewWillAppearに何を書き込むべきですか? –

+0

どこから呼び出すのか、どのように呼び出すのかはどこで決めるべきですか? –

+0

質問が間違っています。 IBInspectableプロパティはすでにUIColorタイプの知識を持っているため、おそらくリファクタリングすることができます。 [リンク] http://nshipster.com/ibinspectable-ibdesignable/これの良い例を示しています。 – dfd

0

あなたは混乱に聞こえます。用語IBInspectableには、@IBInspectableタグを持つビュー・オブジェクトのプロパティーが記述されています。それはInterface Builderに、そのプロパティをInterface Builderの内部から変更できるようにしたいことを伝えます。

IBInspectableプロパティは、Interface Builderから編集可能であることを除いて、他のプロパティと変わりありません。

あなたは、プロパティの直径を持つクラスCircleView、持っている場合:

class FooView: UIView { 
    @IBInspectable var diameter: CGFloat { 
    didSet { 
     //Code to do something with a change to the diameter property 
    } 
} 

をそして、あなたのビューコントローラは、コンセントとそれにFooViewオブジェクトを持っている、そしてあなただけのコードでカスタムプロパティの値を変更することができます他のプロパティのように:

class MyViewController: UIViewController { 

    @IBOulet weak var fooView: FooView! 

    @IBAction func buttonTapped(sender: UIButton) { 
    fooView.diameter += 5 
    } 
} 
関連する問題