如何知道当前的大小类以及我的按钮是否显示?

时间:2015-01-14 21:17:57

标签: ios storyboard autolayout ios-universal-app size-classes

我在我的项目中使用了大小等级。

我有一个按钮,只显示

  • 紧凑宽度和紧凑高度
  • 紧凑宽度和常规高度

此按钮不会显示给其他尺寸类别。

在此按钮上,我应用特定效果。但我只需要为我的2个尺寸类别应用此效果。

类似的东西:

if button is available for the current size classe
    apply the effect

是否可以实施?

2 个答案:

答案 0 :(得分:5)

要跟进我之前删除的上一个回答及后续评论,Apple's docs state那个

  

仍会创建已卸载视图的运行时对象。但是,视图和任何相关约束不会添加到视图层次结构中,并且视图的superview属性为nil。这与隐藏不同。隐藏视图与任何相关约束一样位于视图层次结构中。

换句话说,唯一可以知道的方法是检查插座视图的父视图是否为nil

答案 1 :(得分:4)

在ViewWillApper()期间,检查View Controller的traitCollection。

myViewController: UIViewController{

    mybutton = UIButton(frame: myframe)

    func viewWillAppear(){

        if traitCollection.horizontalSizeClass == .Compact {
            applyAwesomeEffect(myButton)
        }
    }
}