UINavigationController の上に UILabel を表示しようとしています。問題は、UILabel を UIWindow のサブビューとして追加すると、UIViewController のサブビューではないため、自動的に回転しないことです (UIViewController は、回転中にサブビューの更新を自動的に処理します)。
これは私が使用していた階層です:
- UIウィンドウ
- UIラベル
- UINavigationController
したがって、次の階層を使用できると考えていました。
- UIウィンドウ
- UIViewController
- UIView
- UIラベル
- UINavigationController
- UIView
- UIViewController
このようにして、ラベルは UIViewController のサブビューであるため、自動的に回転しながら UINavigationController のバーの上に表示できます。
問題は、UINavigationController をビューのサブビューとして追加しようとしたときです。
[myViewController.view addSubview:myNavigationController.view];
20 ピクセル下に表示されます。私が推測しているのは、ステータスバー用のスペースを確保する必要があると考えているためです。しかし、UINavigationController はステータス バーの上にオーバーレイしない UIView 内に配置されているため、誤って 20 ピクセルが追加されています。つまり、UINavigationBar の上部は、画面の 20 ピクセルではなく 40 ピクセル マークにあります。
UINavigationController とそのすべての要素 (ナビゲーション バー、ツールバー、ルート ビュー コントローラーなど) を 20 ピクセル上に移動する簡単な方法はありますか? または、ステータス バーを補うべきではないことを知らせるには?
そうでない場合は、上記の最初の階層を使用して、ナビゲーション バーの回転と一致するようにラベルを回転させる方法を理解する必要があると思います。これを行う方法に関する詳細情報はどこにありますか?
注:「ナビゲーションバーの上にラベルを表示する」とは、ナビゲーションバーの上に重ねる必要があることを意味します...単純にバーボタンアイテムにラップして、のアイテムの1つとして配置することはできませんナビゲーションバー。