IB ビューが 4 インチ サイズに設定された UIViewController があり、addChildViewController (Facebook/Path のようなスライダー メニュー) を使用して UINavigationController を追加しているため、ここには特別なケースがあると思います。私が今直面している問題は、アプリを実行すると、設定時に UINavigationController ビューの高さが 372 になることです
containerViewController.view.frame = CGRectMake(0, 0, 320, 460);
3.5 インチ デバイスで 460 の正しい高さを取得するには、高さを 548 に設定する必要があります。どうすれば修正できますか?
UIBarButtonItem にイベントを登録して、画面をスライドさせます
[UIView animateWithDuration:0.3 delay:0 options:UIViewAnimationOptionCurveEaseInOut animations:^{
self.navigationController.view.frame = CGRectMake(268, 0, 320, 460);
} completion:^(BOOL finished){ }];
ボタンをクリックすると、UIView は正しい高さに設定されますが(268, 0, 320, 460)
、CGRectMake とまったく同じサイズを使用しています。
後でフレームを設定しているとき
[self.window makeKeyAndVisible];
高さに460を使用して動作していますが、なぜこれが動作しているのか、iOSは後でディスプレイサイズの調整を行っていると思いますmakeKeyAndVisible