Container View を持つ UIViewController があります。このコンテナ ビューには、UITableViewController が含まれています。
UIViewController は UINavigationController に組み込まれています。色合い、バーの色合い、およびタイトル テキスト属性を変更して NavigationBar を構成しますが、透過性を変更しようとすると問題が発生します。他のすべてのカスタマイズ コードを削除して、問題を特定しました。UIViewController でこれを行うたびに-viewDidLoad
:
self.navigationController.navigationBar.translucent = NO;
コンテナ ビューは、独自のナビゲーション バーがあるかのように、それ自体の上にスペースを追加します。半透明を YES に設定すると、ビューにはすべてが正しく表示されます。これは、半透明を NO に設定するたびに、含まれているビューでのみ発生します。
私がここで見逃しているものはありますか?
含まれているビューで半透明をYES
設定し、非表示に設定しようとしましたが、何も機能しませんでした。どういうわけか、含まれているビューは親のコンテナーからプロパティを継承していますか? 半透明度を に設定するたびに、含まれるビューにこの余分なスペースが作成されないようにするにはどうすればよいNO
ですか?
半透明度の設定は半透明度にのみ影響し、ビューの位置には影響しないと思います。
半透明=YESの場合
+---------------------------------+
| |
| UINavigationBar |
| |
+---------------------------------+
| |
| |
| |
| |
| |
| UITableViewController |
| in a Contained View |
| |
| |
| |
| |
| |
| |
+---------------------------------+
半透明 = NO の場合
+---------------------------------+
| |
| UINavigationBar |
| |
+---------------------------------+
| |
|blank space created on top of view
| |
+---------------------------------+
| |
| |
| |
| |
| |
| |
| UITableViewController |
| in a Contained View |
| |
+---------------------------------+
PS My View はこれよりも複雑です。