【发布时间】:2021-12-14 17:28:49
【问题描述】:
我在一个名为 Container 的类中对 UIView 进行了子类化。 我想按程序给出容器框架的值。 为此,在我的 Container 类中,我有一个名为 customInit 的方法,如下所示:
public func customInit() {
super.customInit()
backgroundColor = .systemCyan
frame.origin.x = 10
}
(当然没那么简单,我只是想举个例子)。为了与 IB 交互,我在 Container 类中有:
override public func prepareForInterfaceBuilder() {
super.prepareForInterfaceBuilder()
customInit()
}
这样我在 customInit 中所做的更改就会反映在 IB 中。 this is what I see in IB
但是如果我在 IB 中选择视图,我会得到: what I see when container is selected
容器视图的位置很好,但是当我选择它时,IB 会显示另一个位置。 我了解我在 IB Inspector 中看到的值从未在 XIB 文件中更新 values in IB Inspector
如果 contentView 中包含多个容器视图,这可能会成为一个真正的问题(例如考虑键盘视图,其中每个键都由一个 Container 类表示)
所以我的问题是:是否可以更新 XIB 文件,或者至少让 IB 在选择视图时显示正确的位置?
【问题讨论】:
标签: ios xcode interface-builder