1

境界とフレームに関するいくつかの投稿をチェックしていますが、まだ少し混乱しています。

次の階層があります: UITabBarController > UINavigationController > UIViewController

次のNSLogを試したところ

NSLog(@"%f %f %f",[[[self tabBarController] view] bounds].size.height, [[[self navigationController] view] bounds].size.height, [[self view] bounds].size.height);

次の出力が得られます。

480.000000 431.000000 460.000000

ステータス バーの高さの 20 の違いは理解できますが、UIViewController の境界がステータス バーの高さを除外する理由はわかりませんが、UINavigationController と UITabBarController には含まれています...

質問を絞り込む

1) 上部の tabBarController の高さが 480.0 であるのはなぜですか (ステータス バーの高さ 20pt を除外しないのはなぜですか???)。わかりました、高さは常にステータスバーの高さを除外しないと仮定して、今のところ先に進みます

2) UINavigationController の高さは 431.0 です (妥当な推測では、480 ~ 49 です。49 はタブ バーの高さです)。しかし、ステータスバーの高さではなく、タブバーの高さを選択的に除外するのはなぜですか? Apple の View Programming Guide はそれを説明していないようです...しかし、先に進みましょう...

3) UIViewController の高さが 460 なのはなぜですか?!

(3a) UITabBarController や UINavigationController とは異なり、ステータス バーの 20pt の高さを除外するのはなぜですか?

(3b) さらに重要なのは、なぜナビゲーション バーの高さを除外しないのか (つまり、なぜ 431-44 = 387 であってはならないのか?!)

(3c) UINavigationControllerの内側にあるUIViewControllerの高さが UINavigationController よりも長いのはなぜですか?

4

1 に答える 1