1

TabBarController のセクションをしばらく全画面表示にしようとしましたが、この最後の 1 つの部分をまだ理解できません。

したがって、以下のコードを使用して、UIViewController を UINavigationBar の背後に置くことができます。

self.navigationController.navigationBar.translucent = YES;
self.wantsFullScreenLayout = YES;

以下のコードを使用して、UINavigationBar と TabBarController を非表示にすることもできます。

[self.navigationController setNavigationBarHidden:YES animated:NO];
[self.tabBarController.tabBar setHidden:YES];

ただし、UIViewController の高さは、TabBarController を非表示にする前の場所よりも後ろには伸びません。そのため、下に空白があるように見えます。
画像添付。

ここに画像の説明を入力

self.tabBarController.view.frame とバインドを変更してみました。それでもやってません。その底の部分を覆うのを何かが妨げているようです。

どうすればそれを達成できますか?

ありがとう、
ティー

4

1 に答える 1

1

UITabBarController は、サブビューがタブ バーの「後ろ」に移動できるように設計されていません。これは、おそらくタブ バーを半透明にすることができないためです。また[self.tabBarController.tabBar setHidden:YES]、タブ バーを非表示にしますが、UITabBarController に、通常はタブ バーが占めるスペースにビューをレイアウトするように指示しません。実際、これを行うための実際にサポートされている方法はありません。

OTOH、iOS の将来のバージョンで問題が発生するリスクを冒しても構わない場合は、タブ バーを手動で再配置するのは簡単です。UITabBarControllerviewには 2 つのサブビューがあります。1 つはタブ バーで、もう 1 つはコンテンツ ビュー (現在アクティブなビュー コントローラーからのビューを含む) です。スペースを占有するようにコンテンツ ビューのサイズを変更するだけです。必要に応じて、タブ バーが画面の下部から移動するようにアニメーション化することもできます。

于 2011-08-09T20:59:04.923 に答える