1

私の iPhone アプリケーションは、縦向きと横向きの両方をサポートしています。新しい iphone 5 iOS 6 でこれを行うために、自動レイアウト制約と呼ばれる新しいプロパティが導入されています。しかし、iOS 5 と iOS 6 の両方でアプリケーションをサポートする必要があるため、この制約を使用できません。自動レイアウトを使用せずに、この縦向きと横向きを行う方法はありますか?

4

1 に答える 1

2

はい、これは非常に簡単に行うことができます。

iOS6の場合

PORTRAITモードのみが必要なUIViewControllersは、これらの関数を記述します

- (BOOL)shouldAutorotate
{
     return YES;
}

- (NSUInteger)supportedInterfaceOrientations
{
     return (UIInterfaceOrientationMaskPortrait);
}

LANDSCAPE も必要とする UIViewController の場合は、マスキングを All に変更します。

- (NSUInteger)supportedInterfaceOrientations
{
    return (UIInterfaceOrientationMaskAllButUpsideDown);
    //OR return (UIInterfaceOrientationMaskAll);
}

ここで、向きが変わったときに何らかの変更を加えたい場合は、この関数を使用します。

- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
{

}

iOS5の場合

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {

    if (interfaceOrientation == UIInterfaceOrientationPortrait || interfaceOrientation == UIInterfaceOrientationPortraitUpsideDown) {
        return YES;
    }

    return NO;
}
于 2012-10-09T05:45:10.643 に答える