实时渲染中的IBDesignables和traitCollection

时间:2015-02-10 23:50:05

标签: cocoa-touch swift switch-statement ibdesignable uitraitcollection

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

1 个答案:

答案 0 :(得分:2)

当我们在Xcode中渲染时,Interface Builder尚未为可设计视图设置特征集合。我们用雷达跟踪这个:// 17278773。在http://bugreport.apple.com提交报告并提及该错误ID将有助于我们跟踪需求并确定适当的优先级。