我正在尝试在单元测试中测试一些大小类特定的特性,但是遇到了awakeFromNib
中未正确设置大小类的问题。当我运行应用程序时,通过在屏幕上显示所有内容后在LLDB中检查它来正确设置它,但我似乎永远不会触发在进行单元测试时设置的大小类。
有没有人知道何时设置特征集合/如何触发它?
编辑:为了清楚起见,这些是仅测试视图的单元测试,而不是它所在的ViewController。所以我从它的nib加载视图,然后对它进行测试。
我试过调用layoutSubviews()
希望会触发某种大小类设置,但它没有用。当我在traitCollectionDidChange
中放置断点时,堆栈跟踪中只有main
,所以我不确定实际触发它的是什么。
答案 0 :(得分:1)
我明白了。关键是视图需要成为窗口的一部分才能更新它的大小类,因此以下代码可以解决这种情况:
let window = UIWindow()
// "view" is the view you want the size class updated one
window.addSubview(view)