9

私は 1 つのメイン ビュー コントローラーを持つプログラムを持っています。これには、ユーザーがUIPageViewController. 4 ページは QuickHelpViewController0ID ~ QuickHelpViewController3ID で、それぞれが標準のUIViewController. 彼らがボタンをタップすると、私はこれを実行します:

-(void)showQuickHelp
{
    // Load the quick help page view controller
    self.quickHelpPageVC = [self.storyboard instantiateViewControllerWithIdentifier:@"QuickHelpPageViewControllerID"];
    self.quickHelpPageVC.dataSource = self;

    // Create initial quick help page
    UIViewController *quickHelpVCA = [self quickHelpVCForPageIndex:0];
    NSArray <UIViewController *> *quickHelpVCs = @[quickHelpVCA];

    // And assign it to the page VC
    [self.quickHelpPageVC setViewControllers:quickHelpVCs direction:UIPageViewControllerNavigationDirectionForward animated:NO completion:nil];

    [self presentViewController:_quickHelpPageVC animated:YES completion:nil];
}  // showQuickHelp:

UIPageViewControllerDataSourceまた、ユーザーが次/前のページにスクロールするときに、必要に応じて 4 つのページをそれぞれ作成するための も提供します。

これは、iOS 9.3 および 10.x で正常に動作します。また、iPhone X (シミュレーター) を除くすべてのデバイスの 11.0 でも動作します。その上で、4 つのページ インジケーター ドットの列が画面の一番下にあり、iOS 11 が提供する新しい「ホーム バー」の 1 ~ 2 ピクセル上にあります (上にスライドしてアプリを切り替えるなど)。

Apple のBuilding Apps for iPhone Xと呼ばれるビデオで、開発者が同様の問題の修正について話し合っているのを見つけましたが、その場合、彼の解決策は、単純に自動レイアウトを変更して、子供UIPageControlを従来の下部ではなく下部の「安全な領域」に制限することでした。レイアウトガイド。しかし、私はUIPageControl別のView Controllerを使用していません。を使用してUIPageViewControllerいますが、ウィンドウの下部にあるページ コントロールの位置を制御する方法がわかりません。(はい、Interface Builder で [セーフ エリア レイアウト ガイドを使用する] オプションを有効にしました。)

私のシナリオでは、iOS 11 のサイズがデフォルトで間違っているとは想像できませんUIPageViewControllerし、それを修正する明らかな方法も見当たりません。助言がありますか?

4

2 に答える 2