Uipageviewcontroller страница управления слишком близко к домашней панели на iPhone X iOS 11
У меня есть программа с одним контроллером главного вида, который включает в себя кнопку, которую пользователь может нажать, чтобы отобразить 4 страницы "быстрой справки" через 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. он также работает на 11.0 для все устройства, кроме iPhone X (симулятор). При этом строка из 4 точек индикатора страницы находится далеко внизу экрана, всего на 1 или 2 пикселя выше новой "домашней панели", которую предоставляет iOS 11 (сдвиньте вверх, чтобы переключать приложения и т. д.).
Я нашел видео от Apple под названием создание приложений для iPhone X , где разработчик обсуждает исправление подобной проблемы, но в этом случае его решение состояло в том, чтобы просто изменить авто-макет, чтобы ограничить ребенка UIPageControl
в нижней" безопасной области " вместо верхней. традиционное руководство по компоновке дна. Но я не использую UIPageControl
на другом контроллере вида; я использую UIPageViewController
, и я не вижу никакого способа контролировать расположение элементов управления страницей в нижней части окна. (Да, я включил опцию "Использовать руководства по компоновке безопасных областей" в Interface Builder.)
Я не могу себе представить, что iOS 11 неправильно определяет размер UIPageViewController
по умолчанию в моем сценарии, и я не вижу никакого очевидного способа исправить это. Есть предложения?
2 ответа:
Исправление для этого происходит в 11.2
Https://9to5mac.com/2017/10/30/ios-11-2-beta-1/
Уикит - Разрешенные Вопросы
Отображение элемента управления страницей в UIPageViewController на iPhone X больше не перекрывает индикатор home в нижней части экрана. (34478195)
У меня была та же проблема, но я обнаружил, что если я снимаю флажок "расширить края - под нижними полосами" на главном контроллере вида, точки перемещаются вверх и появляются правильно для iPhone X на симуляторе. К сожалению, он также перемещает точки вверх на всех других устройствах... возможно, это не проблема, если на странице не слишком много, но для меня это усекло одну страницу с большим количеством текста на ней.
Это определенно похоже на ошибку, поэтому я подожду, пока Apple, надеюсь, исправит проблему, так как я бы не хотел ставить неприятный хаки, чтобы программно изменить флаг extend Edge under bottom bars только для iPhone X