UIPageViewController子视图控制器之间的水平填充

时间:2013-12-20 01:11:34

标签: ios ios7 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

3 个答案:

答案 0 :(得分:14)

检查UIPageViewController init方法

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

您可以将您的网页间空间值传递到opt

中的UIPageViewControllerOptionInterPageSpacingKey

答案 1 :(得分:9)

使用Swift,您可以使用initWithTransitionStyle:navigationOrientation:options:初始值设定项并将值传递到UIPageViewControllerOptionInterPageSpacingKey参数中的options,以在页面之间设置空格。

作为示例,以下代码显示了如何使用Swift 2.2实现它:

let optionsDict = [UIPageViewControllerOptionInterPageSpacingKey : 20]

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

请注意关于UIPageViewControllerOptionInterPageSpacingKey的{​​{3}}州:

  

该值应该是包含在NSNumber实例中的CGFloat。

但是,如前面的代码所示,类型为[String : Int]的词典也有效。

答案 2 :(得分:8)

故事板中选择 UIPageViewController 。在属性检查器内,有一个用于设置页面间距的选项。