更新 2
4 インチのデバイスを使用して、iOS シミュレーターでアプリを実行およびテストしています。3.5 インチのデバイスを使用して実行すると、ラベルがジャンプしません。私の .xib では、Simulated Metrics の下で、Retina 4 インチ フルスクリーンとして設定しています。この問題が 4 インチのデバイスでしか発生しない理由がわかりませんか?
更新 1
IB で、Simulated Metrics で「Navigation Bar」を選択すると、ラベルがまだジャンプします。最初の画面でラベルを正しくレンダリングする唯一の方法は、ナビゲーション コントローラーをウィンドウのルート ビュー コントローラーとして設定しないことです。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
私のウィンドウの rootViewController は、rootViewController に UIPageViewController が埋め込まれている UINavigationController に設定されています。
私のアプリが読み込まれると、最初のビューはコンテンツが少し押し下げられた状態で表示され、ナビゲーション バーとほぼ同じサイズになります。pageViewController をスクロールすると、コンテンツはペン先に配置された場所にジャンプし、pageViewController によってロードされた他のすべての viewController は問題ありません。
私のappDelegateでは:
self.window.rootViewController = [[UINavigationController alloc] initWithRootViewController:[ContainerViewController new]];
ContainerViewController で:
- (void)viewDidLoad {
[super viewDidLoad];
self.pvc = [[UIPageViewController alloc] initWithTransitionStyle:UIPageViewControllerTransitionStyleScroll
navigationOrientation:UIPageViewControllerNavigationOrientationHorizontal
options:nil];
self.pvc.dataSource = self;
self.pvc.delegate = self;
DetailViewController *detail = [DetailViewController new];
[self.pvc setViewControllers:@[detail]
direction:UIPageViewControllerNavigationDirectionForward
animated:false
completion:nil];
[self addChildViewController:self.pvc];
[self.view addSubview:self.pvc.view];
[self.pvc didMoveToParentViewController:self];
}