4

一度に 1 つのビュー コントローラーを表示する UIPageViewController サブクラスがあります。表示されたView Controllerにはスクロールビューがあります。これにより、ユーザーは左右にスクロールして新しいページに移動したり、上下にスクロールして画面の高さよりも大きなコンテンツを表示したりできます。UIPageViewController サブクラスは UINavigationController 内に埋め込まれ、navBar のツールバーが表示されます。

この UIPageViewController サブクラスには、アプリの 2 つの異なる部分からアクセスできます。

私の最初のviewControllerでは、ツールバーはhiddenです。このビュー コントローラーの要素をタップすると、UIPageViewController が読み込まれ、すべて問題なく表示されます。

2 番目の viewController では、ツールバーが表示されます。このビュー コントローラーの要素をタップすると UIPageViewController が読み込まれますが、コンテンツ (pageViewController の viewController) がナビゲーション バーから少し下に押し出されます。ただし、scrollView を操作するとすぐに、ビューはナビゲーション バーのすぐ下に正しく収まるように自動的に調整されます。

これをiOS7で実行していますが、関係があるかどうかはわかりません。

アプリの 2 つの異なる部分 (ツールバーが表示されている部分と非表示になっている部分) から来ると、View Controller の読み込みが異なるのはなぜですか?

4

2 に答える 2

2

アプリが iOS6 ではうまく動作するが、iOS7 ではうまく動作しない場合は、UIPageViewController(UIPVC) のautomaticallyAdjustsScrollViewInsetsプロパティにNOを設定してみてください。

UIPVC にはスクロールビューが含まれているようです。iOS7 では、UIViewController の automaticallyAdjustsScrollViewInsets プロパティはデフォルトで YES に設定されています。UINavigationController に組み込むとうまく動かないと思います。

私の場合、カスタム UIPVC を作成し、[viewDidLoad] メソッドに次のコードを配置しました。

self.automaticallyAdjustsScrollViewInsets = NO;
于 2013-11-04T16:42:03.043 に答える