gpt4 book ai didi

ios - IBDesignable - IBOutlet 在属性 didSet 方法中为 nil

转载 作者:行者123 更新时间:2023-11-28 07:10:58 24 4
gpt4 key购买 nike

即使当我选择适当的 View 时我的属性在 IB 的属性检查器中可见,属性的 didSet 方法也不会更新相关的 subview 。

这是我的属性(property):

@IBInspectable var imageRepresentation: UIImage = UIImage() {
didSet {
let image = imageRepresentation
let hv = self.headerImageView
let bv = self.backgroundImageView

self.headerImageView.image = imageRepresentation
self.backgroundImageView.image = imageRepresentation
}
}

如您所见,我期待两个 UIImageView 更新为新图像。但是,当我使用 Editor > Debug Selected Views 并设置断点时,我的每个 View 都是 nil。

我很想听听任何人的想法。

谢谢

最佳答案

似乎所有的 IBOutlet 都不会在 IBDesignable View 之前初始化。但是 IB 将访问这些 IBOutlet,因为您需要设置/获取它们的一些属性。一种方法是让所有这些都是可选的,比如

self.headerImageView?.image = imageRepresentation

然后当您确定 IBDesignable View 将显示在屏幕上时(这意味着所有 subview 都已初始化),再次手动设置该属性。

另一种方法是从代码创建 IBDesignable View 的所有 subview 。这样你就不需要任何 IBOutlet,一切都应该随时存在。

关于ios - IBDesignable - IBOutlet 在属性 didSet 方法中为 nil,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28509572/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com