Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 以编程方式设置IBInspectable_Ios_Swift_Storyboard_Ibinspectable - Fatal编程技术网

Ios 以编程方式设置IBInspectable

Ios 以编程方式设置IBInspectable,ios,swift,storyboard,ibinspectable,Ios,Swift,Storyboard,Ibinspectable,我想根据我获得的互联网信息设置不同的可检测项目。例如,我有绿色、红色和橙色圆圈的IBInspectable。如果请求为绿色,我想将isGreen可检查设置为Yes,将其他设置为no。其他两个也一样。 你可以看到我的不可测性。我知道我可以用我放在那里的代码来实现,但是有没有一种方法可以通过编程来切换它们?任何IBInspectable都只是一个编码为在IB中看到的属性。因此,如果您有: @IBInspectable var isGreen:Bool? { didSet {

我想根据我获得的互联网信息设置不同的可检测项目。例如,我有绿色、红色和橙色圆圈的IBInspectable。如果请求为绿色,我想将isGreen可检查设置为Yes,将其他设置为no。其他两个也一样。
你可以看到我的不可测性。我知道我可以用我放在那里的代码来实现,但是有没有一种方法可以通过编程来切换它们?

任何IBInspectable都只是一个编码为在IB中看到的属性。因此,如果您有:

@IBInspectable var isGreen:Bool? {
    didSet {
        // code to color circle?
    }
}
您可以这样做:

self.isGreen = true

任何IBInspectable都只是一个编码为在IB中可见的属性。因此,如果您有:

@IBInspectable var isGreen:Bool? {
    didSet {
        // code to color circle?
    }
}
您可以这样做:

self.isGreen = true

你听起来很困惑。术语
IBInspectable
描述了一个视图对象的属性,该视图对象上有
@IBInspectable
标记。这会告诉Interface Builder,您希望能够从Interface Builder内部更改该属性

除了可以从Interface Builder进行编辑外,IBInspectable属性与任何其他属性都没有区别

如果您有一个具有属性直径的类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
  }
}

你听起来很困惑。术语
IBInspectable
描述了一个视图对象的属性,该视图对象上有
@IBInspectable
标记。这会告诉Interface Builder,您希望能够从Interface Builder内部更改该属性

除了可以从Interface Builder进行编辑外,IBInspectable属性与任何其他属性都没有区别

如果您有一个具有属性直径的类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
  }
}

因此,在我的ViewController中,我应该添加@IBInspectable Is Green,并且在ViewWill中显示我写了什么?我应该在哪里确定调用哪一个,以及如何触发它们?我误解了你的问题。您可能可以重构一些东西,因为iInspectable属性已经知道UIColor类型。[link]就是一个很好的例子。谢谢很好的资源。解决了我的问题。您必须在didSet{}中键入所有更改UI的代码,因此,在我的ViewController中,我应该添加@IBInspectable isGreen,并且在ViewWillExister中显示我写了什么?我应该在哪里确定调用哪一个,以及如何触发它们?我误解了您的问题。您可能可以重构一些东西,因为iInspectable属性已经知道UIColor类型。[link]就是一个很好的例子。谢谢很好的资源。解决了我的问题。您必须在didSet{}中键入更改UI的所有代码