UIPageViewController и ландшафт - PullRequest
4 голосов
/ 12 февраля 2012

Я пробовал следующее, и ничего не работает

NSDictionary *pageViewOptions = [NSDictionary dictionaryWithObjectsAndKeys:UIPageViewControllerOptionSpineLocationKey, [NSNumber numberWithInteger:UIPageViewControllerSpineLocationMid],nil];
NSLog(@"pageViewOptions :%@",pageViewOptions);    

self.pageViewController = [[UIPageViewController alloc] initWithTransitionStyle:UIPageViewControllerTransitionStylePageCurl navigationOrientation:UIPageViewControllerNavigationOrientationHorizontal options:pageViewOptions];    
NSLog(@"spineLocation :%d",self.pageViewController.spineLocation);

NSlog на pageViewOptions равен 2, NSlog на spineLocation равен 1. Это сводит меня с толку, все, что я хочу сделать, это инициализироватьс позвоночником посередине.Он всегда инициализируется слева.приложение инициализируется в альбомной ориентации, но только после поворота устройства на 180 градусов метод «- (UIPageViewControllerSpineLocation) pageViewController: (UIPageViewController *) pageViewController spineLocationForInterfaceOrientation: (UIInterfaceOrientation) ориентация» и затем я получаю позвоночник в середине.Может кто-нибудь, пожалуйста, пролить свет на это.Я везде искал ответ.

Все, что я хочу, это инициализация в ландшафте с позвоночником посередине

1 Ответ

8 голосов
/ 08 апреля 2012

Попробуйте использовать параметр "options":

NSDictionary *options = (UIInterfaceOrientationIsLandscape(self.interfaceOrientation)) ? [NSDictionary dictionaryWithObject: [NSNumber numberWithInteger:UIPageViewControllerSpineLocationMid] forKey: UIPageViewControllerOptionSpineLocationKey] : nil; 

self.pageViewController = [[UIPageViewController alloc] initWithTransitionStyle:UIPageViewControllerTransitionStylePageCurl navigationOrientation:UIPageViewControllerNavigationOrientationHorizontal options:options];

...

И не забудьте инициализировать 2 контроллера представления содержимого:

NSArray *viewControllers = [NSArray arrayWithObjects:contentViewController1, contentViewController2, nil];

[self.pageViewController setViewControllers:viewControllers direction:UIPageViewControllerNavigationDirectionForward animated:NO completion:nil];
...