0

アプリがランドスケープ モードのみをサポートしている場合は、[プロジェクトの概要] のアイコンをクリックして指定します。

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {

    return  interfaceOrientation == UIInterfaceOrientationLandscapeLeft ||
                   interfaceOrientation == UIInterfaceOrientationLandscapeRight;

}

次に、 の場合viewDidLoad、私はそうします

UIView *smallBox = [[UIView alloc]initWithFrame:CGRectMake(10, 10, 300, 300)];
smallBox.autoresizingMask = UIViewAutoresizingFlexibleWidth;

smallBox.backgroundColor = [UIColor yellowColor];
[self.view addSubview:smallBox];

次に、物理的な iPad 2 を横向きに持ち、Xcode からプログラムを実行します。黄色のボックスは、実際には 300px よりもはるかに広いです。ただし、これは、300px が最初にポートレート モードで 300px と見なされ、次に固定された左右の余白にサイズ変更されて幅が 556px になった場合にのみ可能です。(フレーム幅を出力するために追加したタッチハンドラーで確認したように)。

しかし、アプリは横向きモードでのみ実行するように構成されているのに、なぜサイズを変更する必要があるのでしょうか? iOSアプリのルールは、常に最初にポートレートモードでレイアウトされ、次にランドスケープモードが必要な場合はサイズ変更/再レイアウトされるということですか?

4

1 に答える 1

-2

このメソッドを autorate インターフェイスに設定してみてください:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {

    return (interfaceOrientation != UIInterfaceOrientationPortrait);

}
于 2012-09-01T00:16:17.557 に答える