以编程方式设置 IBInspectable
Set IBInspectable programmatically
我想根据我获得的互联网信息设置不同的 IBInspectable 项目。例如,我有用于绿色、红色和橙色圆圈的 IBInspectables。如果请求说绿色,我想将 isGreen inspectable 设置为 Yes,其他设置为 no。其他两个也一样。
可以看到 IBInspectables here。我知道我可以用我放在那里的代码来做到这一点,但是有没有办法以编程方式切换它们?
任何 IBInspectable 都只是一个 属性 编码以供在 IB 中查看。所以如果你有这个:
@IBInspectable var isGreen:Bool? {
didSet {
// code to color circle?
}
}
你可以这样做:
self.isGreen = true
你听起来很困惑。术语 IBInspectable
描述了具有 @IBInspectable
标记的视图对象的 属性。这告诉 Interface Builder 您希望能够从 Interface Builder 内部更改 属性。
除了可从 Interface Builder 编辑外,IBInspectable 属性 与任何其他 属性.
没有什么不同
如果你有一个 class 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 项目。例如,我有用于绿色、红色和橙色圆圈的 IBInspectables。如果请求说绿色,我想将 isGreen inspectable 设置为 Yes,其他设置为 no。其他两个也一样。 可以看到 IBInspectables here。我知道我可以用我放在那里的代码来做到这一点,但是有没有办法以编程方式切换它们?
任何 IBInspectable 都只是一个 属性 编码以供在 IB 中查看。所以如果你有这个:
@IBInspectable var isGreen:Bool? {
didSet {
// code to color circle?
}
}
你可以这样做:
self.isGreen = true
你听起来很困惑。术语 IBInspectable
描述了具有 @IBInspectable
标记的视图对象的 属性。这告诉 Interface Builder 您希望能够从 Interface Builder 内部更改 属性。
除了可从 Interface Builder 编辑外,IBInspectable 属性 与任何其他 属性.
没有什么不同如果你有一个 class 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
}
}