はあなたの特定の問題についての詳細がなければ、そしてどのように検出し、向きを調整している、正確な問題を理解するのは難しいですが、ここでのiOSでの作業、私が作ったいくつかの観測されています
[1] iOSの以前のバージョンでは、実際にハードウェアに問い合わせてから向きやアプリケーションのフレームサイズ情報を判断する前に、いくつかのデフォルトを設定していました。
a)初期設定の向きは、初期設定時にポートレートの向きの枠の寸法とともに、PORTRAITに設定されます。 (デバイスが横向きの場合は誤っているため、この初期情報を使用しないでください)。 (以前の "iPhoneの唯一の日"から残して - 私は推測する)
b)これは "ViewDidLoad"と "applicationDidBecomeActive"タイムフレームで間違っています。 )
c)「didChangeStatusBarOrientationメソッド呼び出し」によって、正しい向きが後で生成されます。この情報をWindow.frame.size情報と共に使用して、正しいサイズの正しいイメージを表示することができます。 これは事実上オリエンテーション要求が正しいことを示すトリガです。 「didChangeStatusBarOrientation」メッセージが受信されるまで何も表示しようとしないでください。
[2]非コードソリューション:
a)はアプリが常に横向きで動作するように設計されている場合、これはアプリの設定に反映されていることを確認/情報:(サポートされているインタフェースの向き設定を使用して) .plist。私は、1つの "サポートされているインターフェイスのオリエンテーション"を許可することをお勧めします、それはランドスケープであり、すべてのビューはランドスケープのサイズと方向を反映します(コードが特にオリエンテーションで何かを設定していない場合、このオプションを選択しないと、おそらく役に立ちません。)
[3]最終ソリューション:
A)あなたはベースのiOSバージョン高く変更することができた場合は、iOS6と大きいバージョンでは、以前の初期化サイクルの配向とフレームサイズを初期化し、その問題がちょうど消えることがありますこれによると。
ここ
は、以下の出力と一緒にこれを発見するために使用されるコードの一部、(この場合には、サンプルとしてオリジナルのiPadを使用して...のiOS 5.1.1を実行している - 風景に始まり、向きが変化しなかった)である
-(void) OrientationAndScreenSizeHELPER : (NSString *)fromObject
{
//from:
// NSLog(@"%s:%d someObject=%@", __func__, __LINE__, someObject);
CGRect appFrame = [[UIScreen mainScreen ]applicationFrame];//using frame so status bar is not part of calculations.
appFrame = [[self.viewController view]frame];//using frame so status bar is not part of calculations.
UIInterfaceOrientation orientation = [[UIApplication sharedApplication] statusBarOrientation];
NSLog(@"orientation[%ld] at time[%@] width[%ld] height[%ld]",
(long)orientation,
fromObject,
(long int)appFrame.size.width,
(long int)appFrame.size.height);
}
**Output:**
orientation[1] at time[ViewDidLoad Orientation] width[768] height[1024]
orientation[1] at time[applicationDidBecomeActive] width[768] height[1024]
orientation[3] at time[didChangeStatusBarOrientation] width[1024] height[768]
お願いします。あなたの質問は明確ではありません。この問題は、ViewControllerの作成方法とは関係ありません。 –
はい、ViewControllerを表示すると、最初の画像のように画面が表示され、アプリをバックグラウンドに戻してアプリを戻すと、向きが通常の表示になり、supportedInterfaceOrientations関数には実装があります。 – pfjhetg
DDYLoveAutoHallViewControllerで制約の管理や方向の処理方法をコードで表示できますか? –