2

我需要创建一个类似书本的应用程序并想使用 UIPageViewController。(iPad,具有两页的水平布局 (UIPageViewControllerSpineLocationMid)。

为了使屏幕更具吸引力,我希望控制器的视图覆盖有图像或 CAGradientLayer 使脊椎可见。

我尝试向 pageViewController 添加一个子视图,但是当动画过渡开始时它似乎被删除了。

有人有想法吗?

4

1 回答 1

1

我通过将 CAGradientLayer 添加到 UIPageViewController 当前显示的子控制器的视图中解决了这个问题。我必须区分左右页面(对于双面横向模式)。为此,我创建了一个名为“rightPage”的 bool 属性并重载了 setter:

- (void) setRightPage:(BOOL)rightPage
{
    _rightPage = rightPage;
    if (!self.spineShadow) {
        self.spineShadow = [CAGradientLayer layer];
    }
    self.spineShadow.zPosition = 5000;
    self.spineShadow.colors = [NSArray arrayWithObjects:
                               (id)[UIColor clearColor].CGColor,
                               (id)[[[UIColor blackColor] colorWithAlphaComponent:0.3] CGColor],
                               nil];

    if (rightPage) {
        self.spineShadow.startPoint = CGPointMake(1.00f,0.5f);
        self.spineShadow.endPoint   = CGPointMake(0.00f,0.5f);
    } else {
        self.spineShadow.startPoint = CGPointMake(0.00f,0.5f);
        self.spineShadow.endPoint   = CGPointMake(1.00f,0.5f);
    }
}
于 2012-11-30T16:08:55.153 回答