不同的纵向和横向自动布局限制:当设备首次处于横向时,在何处设置它们?

时间:2015-11-09 07:36:19

标签: ios autolayout orientation nslayoutconstraint

我已将IBOutlet设置为storyboard,我在IBhanleClient中设置的值是纵向方向。当我以纵向方向运行应用程序然后将设备旋转到横向时,我管理约束更新。但是当我运行app已经是横向设备时,约束具有纵向值。

在加载视图控制器并显示视图时,应该在哪里检查设备的当前方向,并根据这种方向设置适当的约束?

由于

1 个答案:

答案 0 :(得分:1)

您最初可以在viewDidLoad方法中保留条件

if(UIInterfaceOrientationIsPortrait([[UIApplication sharedApplication] statusBarOrientation])){
    // Apply Portrait Constraints
}
else{
    // Apply Landscape Constraints
}

稍后当用户更改方向时,您可以检查以下方法并应用相同的条件

-(void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration{
    if(UIInterfaceOrientationIsPortrait(toInterfaceOrientation)){
          // Apply Portrait Constraints
    }
    else{
          // Apply Landscape Constraints
    }
}