我正在尝试在单元测试中测试一些尺寸类别的特定特征,但遇到了一个问题,即尺寸类别在 awakeFromNib
中未正确设置。当我运行应用程序时,在屏幕上显示所有内容后,通过在 LLDB 中检查它来正确设置它,但在进行单元测试时我似乎永远无法触发正在设置的大小类。
有人知道何时设置特征集合/如何触发它吗?
编辑:为了清楚起见,这些单元测试只是测试 View ,而不是测试它所在的 ViewController。所以我从它的 Nib 加载 View ,然后对其执行测试。
我尝试调用 layoutSubviews()
希望这会触发某种尺寸类别设置,但它不起作用。当我在 traitCollectionDidChange
中放置断点时,堆栈跟踪中只有 main
,因此我不确定实际触发它的是什么。
最佳答案
我明白了。关键是 View 需要成为窗口的一部分才能更新其大小类别,因此以下代码纠正了这种情况:
let window = UIWindow()
// "view" is the view you want the size class updated one
window.addSubview(view)
关于ios - 什么时候正确设置尺码等级?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42447162/