用于横向和纵向方向的不同用户界面

时间:2012-09-26 21:00:38

标签: ios cocoa-touch interface landscape portrait

我长期以来一直没有找到一个好的答案。

是否可以(必须!;)构建不同的用户界面,例如横向和纵向或带有3,5“oder 4”显示屏的iPhone。

就像在代码中说的那样,这就是横向界面,这就是人像界面......

我希望有一个简单的方法。 :)

来自德国慕尼黑的致以诚挚的问候

Laurenz

1 个答案:

答案 0 :(得分:1)

我就是这样做的。我创建了一个名为configureViewForOrientation:的函数,它将您想要设置接口的方向作为参数。

-(void)configureViewForOrientation:(UIInterfaceOrientation)orientation
{
    if (UIInterfaceOrientationIsPortrait(orientation))
    {
        //set up portrait interface
    }

    else
    { 
        //set up landscape interface
    }
}

您可以从viewDidLoad(或您最初设置界面的位置)调用此方法,并使用[UIApplication sharedApplication].statusBarOrientation将其提供给当前方向:

-(void)viewDidLoad
{
    [super viewDidLoad];
    [self configureViewForOrientation:[UIApplication sharedApplication].statusBarOrientation];
}

您也可以在旋转设备时调用它:

-(void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
{
    [super willAnimateRotationToInterfaceOrientation:toInterfaceOrientation duration:duration];
    [self configureViewForOrientation:toInterfaceOrientation];
}

有一些警告(例如您是否在应用程序启动后立即检查设备方向)但这应该适用于大多数时间。