4

我正在构建我的自定义 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 中更改大小类并在我的自定义控件上查看结果。

4

1 回答 1

2

当我们在 Xcode 中渲染时,Interface Builder 还没有为可设计视图设置特征集合。我们正在使用radar://17278773 进行跟踪。在http://bugreport.apple.com提交报告并提及错误 ID 将帮助我们跟踪需求并适当地确定优先级。

于 2015-11-19T17:37:40.657 回答