大小 class 何时设置正确?

When is the size class properly set?

我正在尝试在我的单元测试中测试一些尺寸 class 的特定特征,但我 运行 遇到了尺寸 class 未正确设置的问题awakeFromNib。当我 运行 应用程序时,在屏幕上显示所有内容后,通过在 LLDB 中检查它来正确设置它,但我似乎永远无法触发在进行单元测试时设置的大小 class。

有没有人知道何时设置特征收集/如何触发它?

编辑:为清楚起见,这些单元测试只测试视图,而不是 ViewController 它所在的视图。所以我从它的笔尖加载视图,然后对其执行测试。

我试过调用 layoutSubviews() 希望这会触发某种大小-class 设置,但它没有用。当我在 traitCollectionDidChange 中放置断点时,堆栈跟踪中只有 main,所以我不确定实际触发它的是什么。

我明白了。关键是视图需要成为 window 的一部分才能更新其大小 class,因此以下代码解决了这种情况:

let window = UIWindow()

// "view" is the view you want the size class updated one
window.addSubview(view)