ios – 为什么IBInspectable没有为故事板中的可选变量设置vaue?

ios – 为什么IBInspectable没有为故事板中的可选变量设置vaue?,第1张

概述我正在制作一个学习@IBInspectable如何工作的演示. 首先,我在UIViewController子类中创建了两个变量: @IBInspectable var intTest:Int = 10 @IBInspectable var flag:Bool = false 这样它就出现在故事​​板中.之后,我在故事板中更改这些变量的值: 然后,我尝试在“viewDidLoad()”方法中打印 我正在制作一个学习@IBInspectable如何工作的演示.

首先,我在UIVIEwController子类中创建了两个变量:

@IBInspectable var intTest:Int = 10  @IBInspectable var flag:Bool = false

这样它就出现在故事​​板中.之后,我在故事板中更改这些变量的值:

然后,我尝试在“vIEwDIDLoad()”方法中打印这些变量,如下所示:

overrIDe func vIEwDIDLoad() {       super.vIEwDIDLoad()       // Do any additional setup after loading the vIEw,typically from a nib.       print("intTest value: \(String(describing: intTest))")       print("flag value: \(String(describing: flag)))")  }

输出是:

intTest value: 90

flag value: true

它工作正常,除非我更改变量声明,如,

@IBInspectable var intTest:Int? = 10  @IBInspectable var flag:Bool? = false

之后,我在故事板中更改了与上面相同的值,但是值没有更改.

输出是:

intTest value: Optional(10)

flag value: Optional(false)

所以我的问题是,当我将变量声明为可选时,为什么值不会更新?

另一件事是,当我将变量作为字符串时,值会更新.任何人都可以帮我理解这个功能吗?

解决方法 设置可选值IBInspectable var

@IBInspectable var placeHolderImage:UIImage? {     dIDSet {         leftVIEwSetting()     } }

设置默认值IBInspectable var

@IBInspectable var placeHolderImage:UIImage = UIImage() {    dIDSet {        leftVIEwSetting()    }}

使用此方法,每次更改Interface Builder中的值时,您的视图都将更新.

@IBInspectable var cornerRadius: CGfloat {    get {       return layer.cornerRadius    }    set {       layer.cornerRadius = newValue    }}
总结

以上是内存溢出为你收集整理的ios – 为什么IBInspectable没有为故事板中的可选变量设置vaue?全部内容,希望文章能够帮你解决ios – 为什么IBInspectable没有为故事板中的可选变量设置vaue?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1032137.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存