2013-12-13 1 views
2

У меня проблема с изменением размера UIPageViewController в ландшафтном режиме.Как изменить размер UIPageViewController в ландшафте

Вот мой сценарий:

У меня есть UIViewController, который имеет в нем scrollview. Я добавил UIPageViewController в программный код scrollview, и он отображает все мои контроллеры представления на каждой странице правильно. Когда я меняю ориентацию устройства на пейзаж, я правильно изменяю размер содержимого scrollview, но PageViewController отображает только до половины его содержимого. Не могли бы вы помочь мне с этим.

Thanks, Anand.

ответ

3

Похоже, что вы не получаете правильную ориентацию своего устройства или не пытаетесь установить его в функции viewDidLoad. Следующий код должен правильно установить рамку контроллера просмотра страницы в текущую ориентацию.

- (void)viewWillLayoutSubviews { 
    CGRect screenFrame = [[UIScreen mainScreen] applicationFrame]; 

    if (UIInterfaceOrientationIsLandscape([[UIApplication sharedApplication] statusBarOrientation])) { 
     screenFrame = CGRectMake(0, 0, screenFrame.size.height, screenFrame.size.width); 
    } 

    //Please don't forget to replace _myPageViewController with your variable 
    _myPageViewController.frame = screenFrame; 
} 

Пожалуйста, обратите внимание, что код вызывался из viewWillLayoutSubviews функции.

+0

Я удалил scrollview в своем приложении и заменил его на представление. Таким образом, в настоящее время мой контроллер view имеет элемент управления с uisegmented и uiview. У uiview есть элемент управления просмотром страницы. Я все еще не могу изменить размер контроллера просмотра страниц в ландшафтном режиме. Пожалуйста, помогите мне.
, и я модифицировал ваш viewWIllLayoutSubViews следующим образом, чтобы соответствовать моим потребностям: self.subView.frame = screenFrame; [[self.pageController view] комплектFrame: [[self subView] ограничения]]; –

+0

Я изменил ваш viewWillLayoutSubViews, чтобы соответствовать моей цели, и теперь он работает. Огромное спасибо. –

+0

После взлома головы на 3 часа ..... наконец-то получил правильное решение. Спасибо вам большое :) –

Смежные вопросы