首先,我在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?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)