2013-12-20 60 views
8

我正在使用UIPageViewController來顯示嵌入子視圖控制器中的圖像。UIPageViewController子視圖控制器之間的水平填充

NSDictionary *options = [NSDictionary dictionaryWithObject: [NSNumber numberWithInteger:UIPageViewControllerSpineLocationMin] forKey: UIPageViewControllerOptionSpineLocationKey]; 
self.pageViewController = [[UIPageViewController alloc] initWithTransitionStyle:UIPageViewControllerTransitionStyleScroll navigationOrientation:UIPageViewControllerNavigationOrientationHorizontal options: options]; 
self.pageViewController.dataSource = self; 
self.pageViewController.view.frame = self.view.bounds; 

ImageViewController *initialViewController = [self viewControllerAtIndex:0]; 
initialViewController.index = 0; 

NSArray *viewControllers = [NSArray arrayWithObject:initialViewController]; 
[self.pageViewController setViewControllers:viewControllers direction:UIPageViewControllerNavigationDirectionForward animated:NO completion:nil]; 

[self addChildViewController:self.pageViewController]; 
[self.view addSubview:self.pageViewController.view]; 
[self.pageViewController didMoveToParentViewController:self]; 

一切都很好,但我討厭子視圖控制器是緊挨着另一個。

enter image description here

我在想,如果有孩子視圖控制器之間添加填充物,這樣的方式他們不是旁邊彼此的方式。

東西會看起來更像這個

enter image description here

回答

13

檢查UIPageViewController init方法

- (id)initWithTransitionStyle:(UIPageViewControllerTransitionStyle)style navigationOrientation:(UIPageViewControllerNavigationOrientation)navigationOrientation options:(NSDictionary *)opt

你可以通過在UIPageViewControllerOptionInterPageSpacingKey

你的頁面間的空間價值 opt
7

故事板選擇UIPageViewController。在Attributes Inspector內有一個選項,用於設置頁面間距

5

使用Swift,您可以使用initWithTransitionStyle:navigationOrientation:options:初始值設定項並在options參數中將值傳遞給UIPageViewControllerOptionInterPageSpacingKey以設置頁面之間的間距。

作爲一個例子,下面的代碼說明了如何用夫特2.2實施它:該UIPageViewController class reference指出約UIPageViewControllerOptionInterPageSpacingKey

let optionsDict = [UIPageViewControllerOptionInterPageSpacingKey : 20] 

let pageViewController = UIPageViewController(transitionStyle: .Scroll, 
    navigationOrientation: .Horizontal, 
    options: optionsDict) 

注:

值應一個CGFloat的包裹在一個NSNumber的實例。

但是,如前面的代碼所示,類型爲[String : Int]的字典也適用。