2

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

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

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

我试过打电话layoutSubviews()希望这会触发某种尺寸等级的设置,但它没有用。当我在堆栈跟踪中放置断点时,traitCollectionDidChange只有其中有main,所以我不确定是什么实际触发了它。

4

1 回答 1

2

我想到了。关键是视图需要成为窗口的一部分才能更新它的大小类,所以下面的代码纠正了这种情况:

let window = UIWindow()

// "view" is the view you want the size class updated one
window.addSubview(view) 
于 2017-02-24T21:42:17.127 回答