0

次のコードを使用してビューを作成し、上に配置しています。

UIWindow* mainWindow = [[UIApplication sharedApplication] keyWindow];
CGRect viewRect = mainWindow.frame;
topView = [[UIView alloc] initWithFrame:viewRect];
[topView setBackgroundColor:[UIColor colorWithWhite:0.2 alpha:0.4]];
[mainWindow addSubview:topView];

それは完全に機能しますが、私の問題は、ビュー (ラベルを使用するなど) に何かを書き、デバイスが横向きの位置にある場合、テキストが縦向きになることです。より明確にするために写真を添付し​​ました。それを修正する方法はありますか?ここに画像の説明を入力

編集: mainWindow の代わりに UIApplication.sharedApplication.keyWindow.rootViewController を使用すると、次のようになります。

ここに画像の説明を入力

4

2 に答える 2

0

指定されたビューをView Controllerに追加せずに修正する方法はありません(UIWindow回転を処理することを意図したものではなく、そうするロジックがありません)。

あなたが経験している不安定なビュー回転の結果は、実際にはUIViewのデフォルトの結果autoresizingMaskです

topView = [[UIView alloc] initWithFrame:viewRect];
[topView setBackgroundColor:[UIColor colorWithWhite:0.2 alpha:0.4]];
[topViewsetAutoresizingMask:(UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth)];
于 2013-03-07T23:25:34.517 に答える
0

この回答を参照してください:

すべての上に表示: UIWindow サブビュー VS UIViewController サブビュー

基本的に、メイン ウィンドウの最初のサブビューのみが回転イベントを取得するため、別の方法で行う必要があります。

于 2013-03-07T23:26:13.753 に答える