我正在构建我的自定义 UIControl,这是一个构建为 IBDesignable 的自定义按钮,它需要根据显示它的大小类进行更改。我有一个方法-setupForTraitCollection,它看起来像这样:
func setupForTraitCollection() {
switch(traitCollection.horizontalSizeClass, traitCollection.verticalSizeClass) {
case (.Regular, _):
// iPad - not compressed design
compressed = false
default:
// iPhone - compressed design
compressed = true
}
}
这段代码在编译时工作得很好,但在实时渲染中,并且在调试视图时,它永远不会碰到“iPad”开关盒。我开始在这里放弃并简单地接受 traitCollections 在实时渲染中不可用,但我想确认这一点。更好的是,如果有人能指出我找到解决方案的方向。
所以最重要的问题是——我可以在 IBDesignable 中使用 traitCollections 吗?如果可以,如何使用?
我真的很希望能够在 IB 中更改大小类并在我的自定义控件上查看结果。