UIPageViewController与Peeking

Bad*_*Cat 7 cocoa-touch ios uipageviewcontroller

我正在尝试使用UIPageViewController界面生成器创建一个页面浏览器,它允许显示相邻页面的一部分(也就是窥视).我一直在http://www.appcoda.com/uipageviewcontroller-storyboard-tutorial/上关注一个教程(并将其移植到Swift中)这很简单,但我无法弄清楚要做什么改变UIPageViewController中显示的页面小于屏幕(并居中),并且相邻页面部分显示在屏幕左右两侧.

我试图在IB中调整页面内容视图控制器的大小并使用代码,但页面视图控制器仍将填满整个屏幕.

有没有人知道涵盖此功能的教程或什么是获得所需效果的好方法?

以下来自Bamboo Paper的截图显示了我正在努力实现的目标......

在此输入图像描述

Kev*_*zer 5

就像@davew所说,偷看意见需要使用UIScrollView.我也搜索了一种使用方法,UIPageViewController但找不到任何资源.

使用UIScrollView这个功能并不像我想象的那么痛苦.


这是一个简单的例子,可以看到实际的基本控件.

预习

首先:make a UIViewController,然后在viewDidLoad方法中添加以下代码:

float pad = 20;
NSArray* items = @[@"One", @"Two", @"Three", @"Four"];

self.view.backgroundColor = [UIColor greenColor];

UIScrollView* pageScrollView = [[UIScrollView alloc] initWithFrame:self.view.frame];
pageScrollView.opaque = NO;
pageScrollView.showsHorizontalScrollIndicator = NO;
pageScrollView.clipsToBounds = NO;
pageScrollView.pagingEnabled = YES;

adjustFrame(pageScrollView, pad, deviceH()/4, -pad*3, -deviceH()/2);

[self.view addSubview: pageScrollView];

float w = pageScrollView.frame.size.width;

for(int i = 0; i < [items count]; i++){
    UIView* view = [[UIView alloc] initWithFrame:pageScrollView.bounds];
    view.backgroundColor = [UIColor blueColor];
    setFrameX(view, (i*w)+pad);
    setFrameW(view, w-(pad*1));
    [pageScrollView addSubview:view];
}

pageScrollView.contentSize = CGSizeMake(w*[items count], pageScrollView.frame.size.height);
Run Code Online (Sandbox Code Playgroud)

仅供参考,我使用这些util函数来调整视图框的大小; 我厌倦了用3行代码手动更改它们.

更新

我已将此代码包装在一个简单的ViewController中,并将其放在GitHub上

https://github.com/kjantzer/peek-page-view-controller

它绝不是完整的,但它是一个有效的开始.